Sha256: bef7c8f94ac968f24b98f4e03f2ffcca5d74ab3bef6d9ad9532fa9608f24cca4

Contents?: true

Size: 1.26 KB

Versions: 10

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

module ActionNetworkRest
  class Petitions < Base
    attr_accessor :petition_id

    # 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
    def initialize(petition_id = nil, client:)
      super(client: client, petition_id: petition_id)
    end

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

    def base_path
      'petitions/'
    end

    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

    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

    private

    def osdi_key
      'osdi:petitions'
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
action_network_rest-0.12.0 lib/action_network_rest/petitions.rb
action_network_rest-1.0.1 lib/action_network_rest/petitions.rb
action_network_rest-1.0.0 lib/action_network_rest/petitions.rb
action_network_rest-0.11.0 lib/action_network_rest/petitions.rb
action_network_rest-0.10.0 lib/action_network_rest/petitions.rb
action_network_rest-0.9.0 lib/action_network_rest/petitions.rb
action_network_rest-0.8.2 lib/action_network_rest/petitions.rb
action_network_rest-0.8.1 lib/action_network_rest/petitions.rb
action_network_rest-0.8.0 lib/action_network_rest/petitions.rb
action_network_rest-0.7.0 lib/action_network_rest/petitions.rb