tremendous_ruby 2.2.2 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 28008e8d892e11dff1d134d97f63fd0110c1d53a
4
- data.tar.gz: 4fef86545d294a8f4bdd1f19ae3a8c25b7f83611
2
+ SHA256:
3
+ metadata.gz: 3d0d3f6e5e57238936d5bd9f8989c2e7c18c22d3ca2d2674f007109722a7fbfb
4
+ data.tar.gz: a2696610409bd1d37fa55683dca52c5d14a778ec91fdb761139d6ff1cb169e5c
5
5
  SHA512:
6
- metadata.gz: fa2c97d93f7a9f5799b04cf88ffb1aff9a716d103f1aad24850b655c603dc1f7612f5f3082b1268d1ff940fb337221c59398ac24e1867dcd17eca44307aee599
7
- data.tar.gz: 71bdb0cbdd728865e61b7ec3456a612ef19c593880c7d146787e68d0b342f92fab3d7f6c71eb9fe5d973a21df398859085e0200b48727962f5b02e5dc8fae49e
6
+ metadata.gz: 6f325145e17b15e79b548bcfa2990f7fe2850ae98f1e6b5e3d877e9ad62fde660fc306b4ee7b8cf7c08977e160b3289a87c332ca0484b8893f43b3e79ed95bc8
7
+ data.tar.gz: 64d1f83fd6778e9f607a0e4944e0453a03ca8f73cd8dffe187e9170a58595dd61ccd2db14ed74e15aff83971b15cff668b621e0347ded678699392b569b7aaef
data/lib/tremendous.rb CHANGED
@@ -1,15 +1,18 @@
1
1
  require 'httparty'
2
2
  require 'active_support/core_ext/hash/indifferent_access'
3
3
  require 'tremendous/base'
4
+ require 'tremendous/version'
5
+ require 'tremendous/error'
4
6
  require 'tremendous/request'
5
- require 'tremendous/catalog'
6
7
  require 'tremendous/campaign'
7
8
  require 'tremendous/funding_source'
8
- require 'tremendous/gift'
9
9
  require 'tremendous/invoice'
10
+ require 'tremendous/member'
10
11
  require 'tremendous/order'
11
12
  require 'tremendous/organization'
12
- require 'tremendous/organization_member'
13
+ require 'tremendous/product'
14
+ require 'tremendous/reward'
15
+ require 'tremendous/webhook'
16
+
17
+ require 'tremendous/rest'
13
18
  require 'tremendous/embed'
14
- require 'tremendous/error'
15
- require 'tremendous/version'
@@ -1,18 +1,2 @@
1
1
  module Tremendous
2
- @@config = {
3
- base_api_uri: 'https://www.tremendous.com/api/v1/'
4
- }
5
-
6
- def self.config
7
- @@config
8
- end
9
-
10
- def self.configure
11
- yield @@config
12
- end
13
-
14
- # Access token
15
- def self.default_options
16
- {access_token: @@config[:access_token]}
17
- end
18
2
  end
@@ -1,11 +1,29 @@
1
1
  module Tremendous
2
- class Campaign
3
- def self.list
4
- Tremendous::Request.get(
5
- 'campaigns',
6
- query: Tremendous.default_options,
7
- format: 'json'
8
- )[:campaigns]
2
+ module Campaign
3
+
4
+ def self.included(base)
5
+ base.include InstanceMethods
6
+ end
7
+
8
+ module InstanceMethods
9
+ def campaigns
10
+ CampaignResource.new(access_token, uri)
11
+ end
12
+ end
13
+
14
+ class CampaignResource
15
+ include Request
16
+
17
+ def list(filters={})
18
+ get(
19
+ 'campaigns',
20
+ query: filters,
21
+ )[:campaigns]
22
+ end
23
+
24
+ def show(id)
25
+ get("campaigns/#{id}")[:campaign]
26
+ end
9
27
  end
10
28
  end
11
29
  end
@@ -2,10 +2,10 @@ require 'jwt'
2
2
 
3
3
  module Tremendous
4
4
  class Embed
5
- def self.tokenize(payload)
5
+ def self.tokenize(access_token, payload)
6
6
  JWT.encode(
7
7
  payload,
8
- Tremendous.config[:access_token],
8
+ access_token,
9
9
  'HS256'
10
10
  )
11
11
  end
@@ -6,10 +6,21 @@ module Tremendous
6
6
  super
7
7
  end
8
8
 
9
+ def server_response
10
+ @server_response ||= @response.parsed_response.with_indifferent_access
11
+ end
12
+
9
13
  def message
10
- response_json = JSON.parse(@response.body).with_indifferent_access
11
- errors = response_json[:errors]
12
- "Code: #{@response.code}; Data: #{errors}"
14
+ "Code: #{@response.code}; Data: #{server_response[:errors]}"
13
15
  end
14
16
  end
17
+
18
+ class BadDataError < Error
19
+ end
20
+
21
+ class PaymentError < Error
22
+ end
23
+
24
+ class AccessError < Error
25
+ end
15
26
  end
@@ -1,12 +1,29 @@
1
1
  module Tremendous
2
- class FundingSource
3
-
4
- def self.list(filters={})
5
- Tremendous::Request.get(
6
- 'funding_sources',
7
- query: filters.merge(Tremendous.default_options),
8
- format: 'json'
9
- )[:funding_sources]
2
+ module FundingSource
3
+
4
+ def self.included(base)
5
+ base.include InstanceMethods
6
+ end
7
+
8
+ module InstanceMethods
9
+ def funding_sources
10
+ FundingSourceResource.new(access_token, uri)
11
+ end
12
+ end
13
+
14
+ class FundingSourceResource
15
+ include Request
16
+
17
+ def list(filters={})
18
+ get(
19
+ 'funding_sources',
20
+ query: filters,
21
+ )[:funding_sources]
22
+ end
23
+
24
+ def show(id)
25
+ get("funding_sources/#{id}")[:funding_source]
26
+ end
10
27
  end
11
28
  end
12
29
  end
@@ -1,42 +1,44 @@
1
1
  module Tremendous
2
- class Invoice
3
-
4
- def self.create!(data={})
5
- data_to_post = data.merge(Tremendous.default_options)
6
-
7
- response = Tremendous::Request.post(
8
- 'invoices',
9
- {
10
- body: data_to_post.to_json,
11
- headers: { 'Content-Type' => 'application/json' }
12
- }
13
- )[:invoice]
2
+ module Invoice
14
3
 
4
+ def self.included(base)
5
+ base.include InstanceMethods
15
6
  end
16
7
 
17
- def self.list(filters={})
18
- Tremendous::Request.get(
19
- 'invoices',
20
- query: filters.merge(Tremendous.default_options),
21
- format: 'json'
22
- )[:invoices]
8
+ module InstanceMethods
9
+ def invoices
10
+ InvoiceResource.new(access_token, uri)
11
+ end
23
12
  end
24
13
 
25
- def self.delete(id)
26
- Tremendous::Request.delete(
27
- "invoices/#{id}",
28
- query: Tremendous.default_options,
29
- format: 'json'
30
- )[:invoice]
31
- end
14
+ class InvoiceResource
15
+ include Request
32
16
 
33
- def self.render(id)
34
- Tremendous::Request.get(
35
- "invoices/#{id}",
36
- query: Tremendous.default_options,
37
- format: 'json'
38
- )[:invoice]
39
- end
17
+ def create!(data={})
18
+ post(
19
+ 'invoices',
20
+ {
21
+ body: data.to_json,
22
+ headers: { 'Content-Type' => 'application/json' }
23
+ }
24
+ )[:invoice]
25
+ end
40
26
 
27
+ def list(filters={})
28
+ get(
29
+ 'invoices',
30
+ query: filters,
31
+ )[:invoices]
32
+ end
33
+
34
+ def show(id)
35
+ get("invoices/#{id}")[:invoice]
36
+ end
37
+
38
+ def delete!(id)
39
+ delete("invoices/#{id}")[:invoice]
40
+ end
41
+
42
+ end
41
43
  end
42
44
  end
@@ -0,0 +1,37 @@
1
+ module Tremendous
2
+ module Member
3
+
4
+ def self.included(base)
5
+ base.include InstanceMethods
6
+ end
7
+
8
+ module InstanceMethods
9
+ def members
10
+ MemberResource.new(access_token, uri)
11
+ end
12
+ end
13
+
14
+ class MemberResource
15
+ include Request
16
+
17
+ def create!(data)
18
+ post(
19
+ "members",
20
+ body: data.to_json,
21
+ headers: { 'Content-Type' => 'application/json' }
22
+ )[:member]
23
+ end
24
+
25
+ def list(filters={})
26
+ get(
27
+ "members",
28
+ query: filters,
29
+ )[:members]
30
+ end
31
+
32
+ def show(id)
33
+ get("members/#{id}")[:member]
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,30 +1,37 @@
1
1
  module Tremendous
2
- class Order
2
+ module Order
3
3
 
4
- def self.create!(data={})
5
- data_to_post = data.merge(Tremendous.default_options)
6
-
7
- response = Tremendous::Request.post 'orders',
8
- body: data_to_post.to_json,
9
- headers: { 'Content-Type' => 'application/json' }
10
-
11
- response[:order]
4
+ def self.included(base)
5
+ base.include InstanceMethods
12
6
  end
13
7
 
14
- def self.list(filters={})
15
- Tremendous::Request.get(
16
- 'orders',
17
- query: filters.merge(Tremendous.default_options),
18
- format: 'json'
19
- )[:orders]
8
+ module InstanceMethods
9
+ def orders
10
+ OrderResource.new(access_token, uri)
11
+ end
20
12
  end
21
13
 
22
- def self.retrieve(id)
23
- response = Tremendous::Request.get "orders/#{id}",
24
- query: Tremendous.default_options,
25
- format: 'json'
14
+ class OrderResource
15
+ include Request
16
+
17
+ def create!(data={})
18
+ post(
19
+ 'orders',
20
+ body: data.to_json,
21
+ headers: { 'Content-Type' => 'application/json' }
22
+ )[:order]
23
+ end
24
+
25
+ def list(filters={})
26
+ get(
27
+ 'orders',
28
+ query: filters,
29
+ )[:orders]
30
+ end
26
31
 
27
- response[:order]
32
+ def show(id)
33
+ get("orders/#{id}")[:order]
34
+ end
28
35
  end
29
36
  end
30
37
  end
@@ -1,22 +1,38 @@
1
1
  module Tremendous
2
- class Organization
2
+ module Organization
3
3
 
4
- def self.create!(data)
5
- response = Tremendous::Request.post(
6
- 'organizations',
7
- body: data.merge(Tremendous.default_options).to_json,
8
- headers: { 'Content-Type' => 'application/json' }
9
- )
4
+ def self.included(base)
5
+ base.include InstanceMethods
6
+ end
10
7
 
11
- response[:organization]
8
+ module InstanceMethods
9
+ def organizations
10
+ OrganizationResource.new(access_token, uri)
11
+ end
12
12
  end
13
13
 
14
- def self.list
15
- Tremendous::Request.get(
16
- 'organizations',
17
- query: Tremendous.default_options,
18
- format: 'json'
19
- )[:organizations]
14
+ class OrganizationResource
15
+ include Request
16
+
17
+ def create!(data)
18
+ post(
19
+ 'organizations',
20
+ body: data.to_json,
21
+ headers: { 'Content-Type' => 'application/json' }
22
+ )[:organization]
23
+ end
24
+
25
+ def list(filters={})
26
+ get('organizations', query: filters)[:organizations]
27
+ end
28
+
29
+ def create_access_token!(id, data={})
30
+ post(
31
+ "organizations/#{id}/access_token",
32
+ body: data.to_json,
33
+ headers: { 'Content-Type' => 'application/json' }
34
+ )[:access_token]
35
+ end
20
36
  end
21
37
  end
22
38
  end
@@ -0,0 +1,28 @@
1
+ module Tremendous
2
+ module Product
3
+ def self.included(base)
4
+ base.include InstanceMethods
5
+ end
6
+
7
+ module InstanceMethods
8
+ def products
9
+ ProductResource.new(access_token, uri)
10
+ end
11
+ end
12
+
13
+ class ProductResource
14
+ include Request
15
+
16
+ def list(filters={})
17
+ get(
18
+ 'products',
19
+ query: filters,
20
+ )[:products]
21
+ end
22
+
23
+ def show(id)
24
+ get("products/#{id}")[:product]
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,26 +1,56 @@
1
1
  module Tremendous
2
- class Request
3
- def self.get(path, *opts)
4
- handle_response(HTTParty.get(url(path), *opts))
2
+ module Request
3
+
4
+ def initialize(access_token, uri)
5
+ @access_token = access_token
6
+ @uri = uri
5
7
  end
6
- def self.post(path, *opts)
7
- handle_response(HTTParty.post(url(path), *opts))
8
+
9
+ attr_reader :access_token, :uri
10
+
11
+ def get(path, data={}, *opts)
12
+ handle_response(_execute(:get, url(path), data, *opts))
8
13
  end
9
- def self.put(path, *opts)
10
- handle_response(HTTParty.put(url(path), *opts))
14
+
15
+ def post(path, data={}, *opts)
16
+ handle_response(_execute(:post, url(path), data, *opts))
11
17
  end
12
- def self.delete(path, *opts)
13
- handle_response(HTTParty.delete(url(path), *opts))
18
+
19
+ def put(path, data={}, *opts)
20
+ handle_response(_execute(:put, url(path), data, *opts))
14
21
  end
15
- def self.url(path, params={})
16
- url = URI.join(Tremendous.config[:base_api_uri], path)
22
+
23
+ def delete(path, data={}, *opts)
24
+ handle_response(_execute(:delete, url(path), data, *opts))
25
+ end
26
+
27
+ def _execute(method, url, data={}, *opts)
28
+ data[:format] = :json
29
+ data[:headers] = {
30
+ 'authorization' => "Bearer #{@access_token}"
31
+ }.merge(data.class == Hash ? data[:headers] || {} : {})
32
+
33
+ HTTParty.send(method, url, data, *opts)
34
+ end
35
+
36
+ def url(path, params={})
37
+ URI.join(uri, path)
17
38
  end
18
39
 
19
- def self.handle_response(response)
40
+ def handle_response(response)
20
41
  if response.success?
21
42
  response_json = JSON.parse(response.body).with_indifferent_access
22
43
  else
23
- raise Tremendous::Error.new(response)
44
+ case response.code
45
+ when 400
46
+ raise Tremendous::BadDataError.new(response)
47
+ when 401
48
+ raise Tremendous::AccessError.new(response)
49
+ when 402
50
+ raise Tremendous::PaymentError.new(response)
51
+ else
52
+ raise Tremendous::Error.new(response)
53
+ end
24
54
  end
25
55
  end
26
56
  end
@@ -0,0 +1,20 @@
1
+ module Tremendous
2
+ class Rest
3
+ include Tremendous::Campaign
4
+ include Tremendous::FundingSource
5
+ include Tremendous::Invoice
6
+ include Tremendous::Member
7
+ include Tremendous::Order
8
+ include Tremendous::Organization
9
+ include Tremendous::Product
10
+ include Tremendous::Reward
11
+ include Tremendous::Webhook
12
+
13
+ attr_accessor :access_token, :uri
14
+
15
+ def initialize(access_token, uri)
16
+ @access_token = access_token
17
+ @uri = uri
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,29 @@
1
+ module Tremendous
2
+ module Reward
3
+
4
+ def self.included(base)
5
+ base.include InstanceMethods
6
+ end
7
+
8
+ module InstanceMethods
9
+ def rewards
10
+ RewardResource.new(access_token, uri)
11
+ end
12
+ end
13
+
14
+ class RewardResource
15
+ include Request
16
+
17
+ def list(filters={})
18
+ get(
19
+ 'rewards',
20
+ query: filters,
21
+ )[:rewards]
22
+ end
23
+
24
+ def show(id)
25
+ get("rewards/#{id}")[:reward]
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Tremendous
2
- VERSION = '2.2.2'
2
+ VERSION = '4.3.0'
3
3
  end
@@ -0,0 +1,50 @@
1
+ module Tremendous
2
+ module Webhook
3
+
4
+ def self.included(base)
5
+ base.include InstanceMethods
6
+ end
7
+
8
+ module InstanceMethods
9
+ def webhooks
10
+ WebhookResource.new(access_token, uri)
11
+ end
12
+ end
13
+
14
+ class WebhookResource
15
+ include Request
16
+
17
+ def create!(url, data={})
18
+ post(
19
+ 'webhooks',
20
+ body: {url: url}.merge(data).to_json,
21
+ headers: { 'Content-Type' => 'application/json' }
22
+ )[:webhook]
23
+ end
24
+
25
+ def list
26
+ get("webhooks")[:webhooks]
27
+ end
28
+
29
+ def show(id)
30
+ get("webhooks/#{id}")[:webhook]
31
+ end
32
+
33
+ def delete!(id)
34
+ delete("webhooks/#{id}")[:webhook]
35
+ end
36
+
37
+ def events(id)
38
+ get("webhooks/#{id}/events")[:events]
39
+ end
40
+
41
+ def simulate!(id, event, data={})
42
+ post(
43
+ "webhooks/#{id}/simulate",
44
+ body: {event: event}.merge(data).to_json,
45
+ headers: { 'Content-Type' => 'application/json' }
46
+ )
47
+ end
48
+ end
49
+ end
50
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tremendous_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tremendous Developers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-29 00:00:00.000000000 Z
11
+ date: 2021-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -17,9 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.2'
20
- - - "<="
20
+ - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 5.1.1
22
+ version: '6.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,23 +27,23 @@ dependencies:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: '3.2'
30
- - - "<="
30
+ - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 5.1.1
32
+ version: '6.2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: httparty
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 0.14.0
39
+ version: 0.18.0
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 0.14.0
46
+ version: 0.18.0
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jwt
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -58,77 +58,49 @@ dependencies:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: 1.5.0
61
- - !ruby/object:Gem::Dependency
62
- name: minitest
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '5.0'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '5.0'
75
- - !ruby/object:Gem::Dependency
76
- name: mocha
77
- requirement: !ruby/object:Gem::Requirement
78
- requirements:
79
- - - "~>"
80
- - !ruby/object:Gem::Version
81
- version: '1.1'
82
- type: :development
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '1.1'
89
61
  - !ruby/object:Gem::Dependency
90
62
  name: rake
91
63
  requirement: !ruby/object:Gem::Requirement
92
64
  requirements:
93
- - - "~>"
65
+ - - ">="
94
66
  - !ruby/object:Gem::Version
95
- version: '10.0'
67
+ version: 12.3.3
96
68
  type: :development
97
69
  prerelease: false
98
70
  version_requirements: !ruby/object:Gem::Requirement
99
71
  requirements:
100
- - - "~>"
72
+ - - ">="
101
73
  - !ruby/object:Gem::Version
102
- version: '10.0'
74
+ version: 12.3.3
103
75
  - !ruby/object:Gem::Dependency
104
- name: simplecov
76
+ name: rspec
105
77
  requirement: !ruby/object:Gem::Requirement
106
78
  requirements:
107
- - - "~>"
79
+ - - ">="
108
80
  - !ruby/object:Gem::Version
109
- version: '0.10'
81
+ version: 3.5.0
110
82
  type: :development
111
83
  prerelease: false
112
84
  version_requirements: !ruby/object:Gem::Requirement
113
85
  requirements:
114
- - - "~>"
86
+ - - ">="
115
87
  - !ruby/object:Gem::Version
116
- version: '0.10'
88
+ version: 3.5.0
117
89
  - !ruby/object:Gem::Dependency
118
90
  name: webmock
119
91
  requirement: !ruby/object:Gem::Requirement
120
92
  requirements:
121
- - - "~>"
93
+ - - ">="
122
94
  - !ruby/object:Gem::Version
123
- version: '1.20'
95
+ version: '3'
124
96
  type: :development
125
97
  prerelease: false
126
98
  version_requirements: !ruby/object:Gem::Requirement
127
99
  requirements:
128
- - - "~>"
100
+ - - ">="
129
101
  - !ruby/object:Gem::Version
130
- version: '1.20'
131
- description:
102
+ version: '3'
103
+ description:
132
104
  email:
133
105
  - developers@tremendous.com
134
106
  executables: []
@@ -138,22 +110,26 @@ files:
138
110
  - lib/tremendous.rb
139
111
  - lib/tremendous/base.rb
140
112
  - lib/tremendous/campaign.rb
141
- - lib/tremendous/catalog.rb
142
113
  - lib/tremendous/embed.rb
143
114
  - lib/tremendous/error.rb
144
115
  - lib/tremendous/funding_source.rb
145
- - lib/tremendous/gift.rb
146
116
  - lib/tremendous/invoice.rb
117
+ - lib/tremendous/member.rb
147
118
  - lib/tremendous/order.rb
148
119
  - lib/tremendous/organization.rb
149
- - lib/tremendous/organization_member.rb
120
+ - lib/tremendous/product.rb
150
121
  - lib/tremendous/request.rb
122
+ - lib/tremendous/rest.rb
123
+ - lib/tremendous/reward.rb
151
124
  - lib/tremendous/version.rb
152
- homepage: https://github.com/GiftRocket/tremendous-ruby
125
+ - lib/tremendous/webhook.rb
126
+ homepage: https://github.com/tremendous-rewards/tremendous-ruby
153
127
  licenses:
154
128
  - MIT
155
- metadata: {}
156
- post_install_message:
129
+ metadata:
130
+ documentation_uri: https://www.tremendous.com/docs
131
+ source_code_uri: https://github.com/tremendous-rewards/tremendous-ruby
132
+ post_install_message:
157
133
  rdoc_options: []
158
134
  require_paths:
159
135
  - lib
@@ -168,9 +144,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
144
  - !ruby/object:Gem::Version
169
145
  version: '0'
170
146
  requirements: []
171
- rubyforge_project:
172
- rubygems_version: 2.4.6
173
- signing_key:
147
+ rubyforge_project:
148
+ rubygems_version: 2.7.6.3
149
+ signing_key:
174
150
  specification_version: 4
175
151
  summary: Tremendous Ruby API SDK
176
152
  test_files: []
@@ -1,11 +0,0 @@
1
- module Tremendous
2
- class Catalog
3
- def self.list(filters={})
4
- Tremendous::Request.get(
5
- 'catalog',
6
- query: filters.merge(Tremendous.default_options),
7
- format: 'json'
8
- )[:catalog]
9
- end
10
- end
11
- end
@@ -1,19 +0,0 @@
1
- module Tremendous
2
- class Gift
3
-
4
- def self.list(filters={})
5
- response = Tremendous::Request.get(
6
- 'gifts',
7
- query: filters.merge(Tremendous.default_options),
8
- format: 'json'
9
- )[:gifts]
10
- end
11
-
12
- def self.retrieve(id)
13
- response = Tremendous::Request.get "gifts/#{id}",
14
- query: Tremendous.default_options,
15
- format: 'json'
16
- response[:gift]
17
- end
18
- end
19
- end
@@ -1,26 +0,0 @@
1
- module Tremendous
2
- class OrganizationMember
3
-
4
- def self.to_path(organization_id)
5
- "organizations/#{organization_id}/members"
6
- end
7
-
8
- def self.create!(organization_id, data)
9
- response = Tremendous::Request.post(
10
- to_path(organization_id),
11
- body: data.merge(Tremendous.default_options).to_json,
12
- headers: { 'Content-Type' => 'application/json' }
13
- )
14
-
15
- response[:member]
16
- end
17
-
18
- def self.list(organization_id)
19
- Tremendous::Request.get(
20
- to_path(organization_id),
21
- query: Tremendous.default_options,
22
- format: 'json'
23
- )[:members]
24
- end
25
- end
26
- end