Class: Clicksign::Resources::Notarial::Event

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

Constant Summary collapse

CUSTOM_KINDS =
%w[token_email token_sms].freeze

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, each_page, fields, filter, filter_params, include, list, #method_missing, nested_list, order, page, per, #respond_to_missing?, retrieve, 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

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



11
12
13
14
15
16
17
18
# File 'lib/clicksign/resources/notarial/event.rb', line 11

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

.create_add_image(envelope_id:, document_id:, title:, occurred_at:, content_base64:) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/clicksign/resources/notarial/event.rb', line 20

def self.create_add_image(envelope_id:, document_id:, title:, occurred_at:,
  content_base64:)
  create(
    envelope_id: envelope_id,
    document_id: document_id,
    name: 'add_image',
    content_base64: content_base64,
    data: { title: title, occurred_at: occurred_at },
  )
end

.create_custom(envelope_id:, document_id:, kind:, occurred_at:, signer_name:, signer_email: nil, signer_phone_number: nil) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/clicksign/resources/notarial/event.rb', line 31

def self.create_custom(envelope_id:, document_id:, kind:, occurred_at:,
  signer_name:, signer_email: nil, signer_phone_number: nil)
  unless CUSTOM_KINDS.include?(kind.to_s)
    raise ArgumentError, "kind must be one of: #{CUSTOM_KINDS.join(', ')}"
  end

  create(
    envelope_id: envelope_id,
    document_id: document_id,
    name: 'custom',
    data: {
      kind: kind,
      occurred_at: occurred_at,
      signer_name: signer_name,
      signer_email: signer_email,
      signer_phone_number: signer_phone_number,
    }.compact,
  )
end

Instance Method Details

#deleteObject

Raises:

  • (NotImplementedError)


56
57
58
# File 'lib/clicksign/resources/notarial/event.rb', line 56

def delete
  raise NotImplementedError, 'Event does not support delete'
end

#reloadObject

Raises:

  • (NotImplementedError)


60
61
62
# File 'lib/clicksign/resources/notarial/event.rb', line 60

def reload
  raise NotImplementedError, 'Event does not support reload'
end

#updateObject

API only exposes GET (list) and POST (create) for events — no singleton routes.

Raises:

  • (NotImplementedError)


52
53
54
# File 'lib/clicksign/resources/notarial/event.rb', line 52

def update(**)
  raise NotImplementedError, 'Event does not support update'
end