demarches/lib/documenso.rb
2024-09-01 16:55:38 +02:00

41 lines
1.1 KiB
Ruby

class Documenso
include HTTParty
# debug_output $stdout
# http_proxy 'localhost', 8080
def initialize(url, token)
self.class.base_uri URI.join(url, 'api/v1/').to_s
self.class.headers 'Authorization' => token,
'Content-Type' => 'application/json'
end
def self.perform_request(method, path, json, &block)
response = super method, path, body: json.to_json, &block
return response.parsed_response if response.success?
raise Exception, response
end
def template(id)
self.class.get "/templates/#{id}"
end
def generate(id, recipient, **kwargs)
template = self.template id
recipients = template.fetch 'Recipient'
recipient[:id] = recipients.first['id']
self.class.post "/templates/#{id}/generate-document",
recipients: [recipient], **kwargs
end
def document(id)
self.class.get "/documents/#{id}"
end
def send(id, **kwargs)
self.class.post "/documents/#{id}/send", **kwargs
end
def resend(id, recipients, **kwargs)
self.class.post "/documents/#{id}/resend", recipients: recipients, **kwargs
end
end