class Clerk::SDK
Constants
- DEFAULT_HEADERS
Public Class Methods
new(api_key: nil, base_url: nil, logger: nil, ssl_verify: true, connection: nil)
click to toggle source
# File lib/clerk/sdk.rb, line 23 def initialize(api_key: nil, base_url: nil, logger: nil, ssl_verify: true, connection: nil) if connection # Inject a Faraday::Connection for testing or full control over Faraday @conn = connection return else base_url = base_url || Clerk.configuration.base_url base_uri = if !base_url.end_with?("/") URI("#{base_url}/") else URI(base_url) end api_key = api_key || Clerk.configuration.api_key logger = logger || Clerk.configuration.logger @conn = Faraday.new( url: base_uri, headers: DEFAULT_HEADERS, ssl: {verify: ssl_verify} ) do |f| f.request :url_encoded f.request :authorization, "Bearer", api_key if logger f.response :logger, logger do |l| l.filter(/(Authorization: "Bearer) (\w+)/, '\1 [SECRET]') end end end end end
Public Instance Methods
allowlist()
click to toggle source
# File lib/clerk/sdk.rb, line 86 def allowlist Resources::Allowlist.new(self) end
allowlist_identifiers()
click to toggle source
# File lib/clerk/sdk.rb, line 82 def allowlist_identifiers Resources::AllowlistIdentifiers.new(self) end
clients()
click to toggle source
# File lib/clerk/sdk.rb, line 90 def clients Resources::Clients.new(self) end
emails()
click to toggle source
# File lib/clerk/sdk.rb, line 94 def emails Resources::Emails.new(self) end
request(method, path, query: [], body: nil)
click to toggle source
# File lib/clerk/sdk.rb, line 51 def request(method, path, query: [], body: nil) response = case method when :get @conn.get(path, query) when :post @conn.post(path, body) when :patch @conn.patch(path, body) when :delete @conn.delete(path) end body = if response["Content-Type"] == "application/json" JSON.parse(response.body) else response.body end if response.success? body else klass = case body.dig("errors", 0, "code") when "cookie_invalid", "client_not_found", "resource_not_found" Errors::Authentication else Errors::Fatal end raise klass.new(body, status: response.status) end end
sessions()
click to toggle source
# File lib/clerk/sdk.rb, line 98 def sessions Resources::Sessions.new(self) end
sms_messages()
click to toggle source
# File lib/clerk/sdk.rb, line 102 def sms_messages Resources::SMSMessages.new(self) end
users()
click to toggle source
# File lib/clerk/sdk.rb, line 106 def users Resources::Users.new(self) end