class Dynamo::Client

Constants

VERSION

Attributes

endpoint[R]
secret[R]

Public Class Methods

new(secret:, endpoint: nil) click to toggle source
# File lib/dynamo/client.rb, line 13
def initialize(secret:, endpoint: nil)
  @secret = secret
  @endpoint = endpoint || 'http://dynamo-server-api.eu-central-1.elasticbeanstalk.com'
end

Public Instance Methods

pdf(url, options: nil, stub: false) click to toggle source
# File lib/dynamo/client.rb, line 18
def pdf(url, options: nil, stub: false)
  request = {}
  request[:url] = url
  request[:checksum] = ::Digest::SHA256.hexdigest("#{@secret}#{url}")

  if options.instance_of? Hash
    request[:options] = {}
    options.each do |key, value|
      request[:options][key.to_s.gsub(/_/, '-')] = value
    end
  end

  if stub
    return request
  else
    result = ::HTTParty.post(@endpoint, body: request.to_json, headers:  { 'Content-Type' => 'application/json' })

    if result.code != 200
      raise ::Dynamo::Error, "remote server returned code #{result.code}"
    end

    return result.body
  end
end