Class: SealClub::Client
- Inherits:
-
Object
- Object
- SealClub::Client
- Defined in:
- lib/sealclub.rb
Instance Attribute Summary collapse
-
#api_key ⇒ Object
readonly
Returns the value of attribute api_key.
-
#base_url ⇒ Object
readonly
Returns the value of attribute base_url.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(api_key: nil, base_url: nil) ⇒ Client
constructor
A new instance of Client.
- #seal(pdf) ⇒ Object
Constructor Details
#initialize(api_key: nil, base_url: nil) ⇒ Client
Returns a new instance of Client.
28 29 30 31 32 |
# File 'lib/sealclub.rb', line 28 def initialize(api_key: nil, base_url: nil) key = api_key.to_s.strip @api_key = key.empty? ? nil : key @base_url = (base_url || DEFAULT_BASE_URL).to_s.sub(%r{/+\z}, "") end |
Instance Attribute Details
#api_key ⇒ Object (readonly)
Returns the value of attribute api_key.
26 27 28 |
# File 'lib/sealclub.rb', line 26 def api_key @api_key end |
#base_url ⇒ Object (readonly)
Returns the value of attribute base_url.
26 27 28 |
# File 'lib/sealclub.rb', line 26 def base_url @base_url end |
Class Method Details
.from_env(env = ENV) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/sealclub.rb', line 34 def self.from_env(env = ENV) api_key = first_env(env, API_KEY_ENV) raise Error.new("Missing SEAL_API_KEY", detail: "Missing SEAL_API_KEY") if api_key.nil? new(api_key: api_key, base_url: first_env(env, BASE_URL_ENV)) end |
Instance Method Details
#seal(pdf) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/sealclub.rb', line 41 def seal(pdf) pdf = pdf.b raise Error.new("PDF body is empty") if pdf.empty? uri = URI.join("#{@base_url}/", "seal") request = Net::HTTP::Post.new(uri) request["Content-Type"] = "application/pdf" request["Accept"] = "application/pdf" if @api_key request["Authorization"] = "Bearer #{@api_key}" request["X-API-Key"] = @api_key end request.body = pdf response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http| http.request(request) end return response.body.b if response.is_a?(Net::HTTPSuccess) raise to_error(response) end |