Class: ActionNetworkRest::Petitions

Inherits:
Base
  • Object
show all
Defined in:
lib/action_network_rest/petitions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#all, #get, #list

Constructor Details

#initialize(petition_id = nil, client:) ⇒ Petitions

Without a petition_id, this class is used for Petition creation/update endpoints. With a petition_id, this class is used to initialise the Signatures class, like client.petitions(123).signatures



10
11
12
# File 'lib/action_network_rest/petitions.rb', line 10

def initialize(petition_id = nil, client:)
  super(client: client, petition_id: petition_id)
end

Instance Attribute Details

#petition_idObject

Returns the value of attribute petition_id.



5
6
7
# File 'lib/action_network_rest/petitions.rb', line 5

def petition_id
  @petition_id
end

Instance Method Details

#base_pathObject



18
19
20
# File 'lib/action_network_rest/petitions.rb', line 18

def base_path
  'petitions/'
end

#create(petition_data, creator_person_id: nil) ⇒ Object



22
23
24
25
26
27
28
29
30
31
# File 'lib/action_network_rest/petitions.rb', line 22

def create(petition_data, creator_person_id: nil)
  post_body = petition_data
  if creator_person_id.present?
    creator_person_url = action_network_url("/people/#{url_escape(creator_person_id)}")
    post_body['_links'] = { 'osdi:creator' => { href: creator_person_url } }
  end

  response = client.post_request base_path, post_body
  object_from_response(response)
end

#signaturesObject



14
15
16
# File 'lib/action_network_rest/petitions.rb', line 14

def signatures
  @_signatures ||= ActionNetworkRest::Signatures.new(client: client, petition_id: petition_id)
end

#update(id, petition_data) ⇒ Object



33
34
35
36
37
# File 'lib/action_network_rest/petitions.rb', line 33

def update(id, petition_data)
  petition_path = "#{base_path}#{url_escape(id)}"
  response = client.put_request petition_path, petition_data
  object_from_response(response)
end