Class: Clicksign::Resources::Notarial::Document

Inherits:
Clicksign::Resource show all
Defined in:
lib/clicksign/resources/notarial/document.rb

Instance Attribute Summary

Attributes inherited from Clicksign::Resource

#id, #relationships

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Clicksign::Resource

#[], client, #delete, fields, filter, filter_params, include, list, #method_missing, nested_list, order, page, per, #reload, #respond_to_missing?, #update

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Clicksign::Resource

Class Method Details

.create(envelope_id:, **attributes) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/clicksign/resources/notarial/document.rb', line 15

def self.create(envelope_id:, **attributes)
  raw = client.post(
    "/envelopes/#{envelope_id}/documents",
    body: JsonApi::Serializer.dump(type: resource_type, attributes: attributes),
  )
  parsed = JsonApi::Parser.parse(raw)
  build_instance(parsed[:data].first, parent_id: envelope_id)
end

.list_events(document_id, envelope_id:) ⇒ Object



24
25
26
27
28
# File 'lib/clicksign/resources/notarial/document.rb', line 24

def self.list_events(document_id, envelope_id:)
  raw    = client.get("/envelopes/#{envelope_id}/documents/#{document_id}/events")
  parsed = JsonApi::Parser.parse(raw)
  parsed[:data].map { |item| Event.send(:build_instance, item) }
end

.retrieve(id, envelope_id:) ⇒ Object



9
10
11
12
13
# File 'lib/clicksign/resources/notarial/document.rb', line 9

def self.retrieve(id, envelope_id:)
  raw    = client.get("/envelopes/#{envelope_id}/documents/#{id}")
  parsed = JsonApi::Parser.parse(raw)
  build_instance(parsed[:data].first, parent_id: envelope_id)
end

Instance Method Details

#base_pathObject



30
31
32
# File 'lib/clicksign/resources/notarial/document.rb', line 30

def base_path
  "/envelopes/#{@_parent_id || envelope_id}/documents"
end

#envelope_idObject



34
35
36
# File 'lib/clicksign/resources/notarial/document.rb', line 34

def envelope_id
  @_parent_id || relationships.dig('envelope', 'data', 'id')
end