Class: FaithTeams::API::V2::Resource::Contribution

Inherits:
Base show all
Defined in:
lib/faithteams/api/v2/resource/contribution.rb

Overview

A transaction in faithteams

Instance Method Summary collapse

Methods inherited from Base

#delete, #search, #update

Methods inherited from GatewayBase

#initialize, #valid_connection?

Constructor Details

This class inherits a constructor from FaithTeams::API::V2::GatewayBase

Instance Method Details

#create(entity:) ⇒ Entity::Contribution

Parameters:

Returns:

Raises:



12
13
14
15
16
17
18
19
# File 'lib/faithteams/api/v2/resource/contribution.rb', line 12

def create(entity:)
  data = connection.post(path: "/contributions", body: entity.to_h)["data"]

  Entity::Contribution.new(attributes: data)
rescue Error::Request => e
  raise Error::Request.new(response: e.response, message: "Request Unsuccessful: The contribution #{entity.inspect} could not be created. FaithTeams API failure message: #{e.message}}") if e.response.status.success?
  raise
end

#find(id:) ⇒ Entity::Contribution?

Parameters:

  • id (Integer)

    The contributions parent_id

Returns:

Raises:



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/faithteams/api/v2/resource/contribution.rb', line 24

def find(id:)
  raise FaithTeams::API::V2::Error::NoSearchParameterProvided if id.nil?

  data = connection.get(path: "/contributions/#{id}")["data"]
  return nil unless data.present?

  Entity::Contribution.new(attributes: data)
rescue Error::Request => e
  raise Error::Request.new(response: e.response, message: "Request Unsuccessful: The contribution with parent_id #{id} could not be found. FaithTeams API failure message: #{e.message}}") if e.response.status.success?
  raise
end