Class: Clicksign::Resources::Notarial::Envelope

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

Instance Attribute Summary

Attributes inherited from Clicksign::Resource

#id, #relationships

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Clicksign::Resource

#[], auto_paging_each, #base_path, client, #delete, each_page, fields, filter, filter_params, include, list, #method_missing, nested_list, order, page, per, #reload, #respond_to_missing?, retrieve, #update, validate_jsonapi_include_types!, with_includes

Dynamic Method Handling

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

Class Method Details

.activate(id) ⇒ Object

POST /envelopes/:id/activate — rota disponível mas prefira envelope.update(status: ‘running’) via PATCH, que é o caminho recomendado e suportado por todos os ambientes.



22
23
24
25
26
# File 'lib/clicksign/resources/notarial/envelope.rb', line 22

def self.activate(id)
  raw    = client.post("#{endpoint}/#{id}/activate", body: {})
  parsed = JsonApi::Parser.parse(raw)
  build_instance(parsed[:data].first)
end

.create(folder_id: nil, **attributes) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/clicksign/resources/notarial/envelope.rb', line 9

def self.create(folder_id: nil, **attributes)
  relationships = if folder_id
                    { folder: { data: { type: 'folders',
                                        id: folder_id } } }
                  else
                    {}
                  end
  super(**attributes, relationships: relationships)
end

.list_documents(envelope_id, **filters) ⇒ Object



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

def self.list_documents(envelope_id, **filters)
  nested_list(envelope_id, nested_type: 'documents', as: Document,
                           params: filter_params(**filters))
end

.list_events(envelope_id, **filters) ⇒ Object



28
29
30
31
# File 'lib/clicksign/resources/notarial/envelope.rb', line 28

def self.list_events(envelope_id, **filters)
  nested_list(envelope_id, nested_type: 'events', as: Event,
                           params: filter_params(**filters))
end

.list_requirements(envelope_id, **filters) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/clicksign/resources/notarial/envelope.rb', line 49

def self.list_requirements(envelope_id, **filters)
  nested_list(
    envelope_id,
    nested_type: 'requirements',
    as: Requirement,
    params: filter_params(**filters),
  )
end

.list_signature_watchers(envelope_id, **filters) ⇒ Object



43
44
45
46
47
# File 'lib/clicksign/resources/notarial/envelope.rb', line 43

def self.list_signature_watchers(envelope_id, **filters)
  nested_list(envelope_id, nested_type: 'signature_watchers',
                           as: SignatureWatcher,
                           params: filter_params(**filters))
end

.list_signers(envelope_id, **filters) ⇒ Object



38
39
40
41
# File 'lib/clicksign/resources/notarial/envelope.rb', line 38

def self.list_signers(envelope_id, **filters)
  nested_list(envelope_id, nested_type: 'signers', as: Signer,
                           params: filter_params(**filters))
end

.notify(id, message: nil, **email_customization) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
# File 'lib/clicksign/resources/notarial/envelope.rb', line 58

def self.notify(id, message: nil, **email_customization)
  attributes = {}
  attributes[:message] = message if message
  unless email_customization.empty?
    attributes[:email_customization] =
      email_customization
  end
  body = { data: { type: 'notifications', attributes: attributes } }
  client.post("#{endpoint}/#{id}/notifications", body: body)
  nil
end

Instance Method Details

#folder_idObject



74
75
76
# File 'lib/clicksign/resources/notarial/envelope.rb', line 74

def folder_id
  relationships.dig('folder', 'data', 'id')
end

#notify(message: nil, **email_customization) ⇒ Object



70
71
72
# File 'lib/clicksign/resources/notarial/envelope.rb', line 70

def notify(message: nil, **email_customization)
  self.class.notify(@id, message: message, **email_customization)
end