rallio 0.2.2 → 0.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
2
  SHA1:
3
- metadata.gz: 8b601ef0809d471e7bf37312a8a67ed74556ea94
4
- data.tar.gz: 582c8fedf7245d6e3f598a22bdcd37fc66be48fe
3
+ metadata.gz: 5c4ea3d06f8622e3412ca3a95e0f1a68cb02ae40
4
+ data.tar.gz: 972a7189aa36fa4840d3cf84b00d085509bba86c
5
5
  SHA512:
6
- metadata.gz: 2544c8ab2c57dec681956f97d5f845c030f474725e6d0acd55f41b0c12403e015a37efd482ac94223e1eb5984f43e6a533be605dbb36f1c477627f51a9e3949c
7
- data.tar.gz: b416734a6a656be1cd74c64d725a159d75fa19f428dd9d48ab20e196deb59757518b82910638262ce5ee30f3bdf222028d4765ca56b76bd1bfdc3f9d1713d8ea
6
+ metadata.gz: 62b63506746d5e6f923cd628afe9c1697cf25fbf3cfb9734d1a9392297010c38edd28ec5d9265f9d4f13f84c3fedf70e9913cd209309d528969d58a43fbc664c
7
+ data.tar.gz: d8226ce802c1209a0e0c78edf08ef2f7e96f3ce3e7d797e5c949e6971979630c49c5b6c905edddd4046f90d91d1d3e3e84dc80a6e746e4cd68944517157678d5
data/README.md CHANGED
@@ -93,6 +93,24 @@ user.access_token
93
93
  # => <Rallio::AccessToken @access_token="4a25dd89e50bd0a0db1eeae65864fe6b", @user_id=100, @expires_at=nil, @scopes="user_info basic_access">
94
94
  ```
95
95
 
96
+ #### #account_ownerships
97
+
98
+ Returns all the accounts this user is associated with.
99
+
100
+ ```ruby
101
+ user.account_ownerships
102
+ # => [#<Rallio::AccountOwnership:0x007fc3aaaa70b0 @user_id=100, @account_id=200, @account_name="Awesome Haircuts New York City", @account_franchisor_id=300, @account_franchisor_name="Awesome Haircuts Franchisor 1">]
103
+ ```
104
+
105
+ #### #franchisor_ownerships
106
+
107
+ Returns all the franchisors this user is associated with.
108
+
109
+ ```ruby
110
+ user.franchisor_ownerships
111
+ # => [#<Rallio::FranchisorOwnership:0x007f93d8986340 @user_id=100, @franchisor_id=300, @franchisor_name="Awesome Haircuts Franchisor 1">]
112
+ ```
113
+
96
114
  #### #me
97
115
 
98
116
  **NOTE:** This endpoint is in the docs but it appears it may not be implemented.
@@ -147,6 +165,87 @@ access_token = Rallio::AccessToken.new(access_token: '4a25dd89e50bd0a0db1eeae658
147
165
  access_token.destroy # => true
148
166
  ```
149
167
 
168
+ ### FranchisorOwnership
169
+
170
+ #### .for
171
+
172
+ Returns all franchisors for a given access token.
173
+
174
+ ```ruby
175
+ Rallio::FranchisorOwnership.for(access_token: '4a25dd89e50bd0a0db1eeae65864fe6b')
176
+ # => [<Rallio::FranchisorOwnership:0x007f93d8986340 @user_id=100, @franchisor_id=300, @franchisor_name="Awesome Haircuts Franchisor 1">]
177
+ ```
178
+
179
+ #### .create
180
+
181
+ This creates an association between a user and a Franchisor.
182
+
183
+ ```ruby
184
+ Rallio::FranchisorOwnership.create(user_id: 100, franchisor_id: 300)
185
+ # => <Rallio::FranchisorOwnership:0x007f93d8986340 @user_id=100, @franchisor_id=300, @franchisor_name="Awesome Haircuts Franchisor 1">
186
+ ```
187
+
188
+ #### .destroy
189
+
190
+ Destroys a relationship between user and franchisor.
191
+
192
+ ```ruby
193
+ Rallio::FranchisorOwnership.destroy(user_id: 100, franchisor_id: 300)
194
+ # => {}
195
+ ```
196
+
197
+ ### AccountOwnership
198
+
199
+ #### .for
200
+
201
+ Returns all accounts for a given access token.
202
+
203
+ ```ruby
204
+ Rallio::AccountOwnership.for(access_token: '4a25dd89e50bd0a0db1eeae65864fe6b')
205
+ # => [<Rallio::AccountOwnership:0x007fc3aaaa70b0 @user_id=100, @account_id=200, @account_name="Awesome Haircuts New York City", @account_franchisor_id=300, @account_franchisor_name="Awesome Haircuts Franchisor 1">]
206
+ ```
207
+
208
+ #### .create
209
+
210
+ This creates an association between a user and an Account.
211
+
212
+ ```ruby
213
+ Rallio::AccountOwnership.create(user_id: 100, account_id: 200)
214
+ # => <Rallio::AccountOwnership:0x007fc3aaaa70b0 @user_id=100, @account_id=200, @account_name="Awesome Haircuts New York City", @account_franchisor_id=300, @account_franchisor_name="Awesome Haircuts Franchisor 1">
215
+ ```
216
+
217
+ #### .destroy
218
+
219
+ Destroys a relationship between user and account.
220
+
221
+ ```ruby
222
+ Rallio::AccountOwnership.destroy(user_id: 100, account_id: 200)
223
+ # => {}
224
+ ```
225
+
226
+ ### Franchisor
227
+
228
+ #### .all
229
+
230
+ Returns all franchisors for a given set of app credentials.
231
+
232
+ ```ruby
233
+ Rallio::Franchisor.all
234
+ # => [<Rallio::Franchisor:0x007fa944c30e48 @id=100, @name="Awesome Haircuts", @short_name=nil, @url=nil, @city=nil, @country_code=nil, @time_zone=nil>]
235
+ ```
236
+
237
+ #### #accounts
238
+
239
+ Returns all accounts associated with a franchisor.
240
+
241
+ ```ruby
242
+ franchisor = Rallio::Franchisor.new(id: 100)
243
+ # => <Rallio::Franchisor:0x007fa944c30e48 @id=100, @name=nil, @short_name=nil, @url=nil, @city=nil, @country_code=nil, @time_zone=nil>
244
+
245
+ franchisor.accounts
246
+ # => [<Rallio::Account:0x007f801bb0a610 @id=100, @name="Awesome Haircuts New York City", @short_name="AH-NYC", @url="https://awesomehaircuts.fake", @city="New York", @country_code="US", @time_zone="Eastern Time (US & Canada)">]
247
+ ```
248
+
150
249
  ### Account
151
250
 
152
251
  These gives access to account info that a user has access to. In order to query
@@ -157,7 +256,16 @@ user.access_token
157
256
  # => <Rallio::AccessToken @access_token="4a25dd89e50bd0a0db1eeae65864fe6b", @user_id=100, @expires_at=nil, @scopes="user_info basic_access">
158
257
  ```
159
258
 
160
- #### .reviews
259
+ #### .for
260
+
261
+ Get all accounts for a given franchisor_id.
262
+
263
+ ```ruby
264
+ accounts = Rallio::Account.for(franchisor_id: 200)
265
+ # => [<Rallio::Account:0x007f801bb0a610 @id=100, @name="Awesome Haircuts New York City", @short_name="AH-NYC", @url="https://awesomehaircuts.fake", @city="New York", @country_code="US", @time_zone="Eastern Time (US & Canada)">]
266
+ ```
267
+
268
+ #### #reviews
161
269
 
162
270
  This is a convenience method to get reviews for a given account. All that is
163
271
  needed is a `Rallio::Account` object instantiated with a valid account id. This
@@ -12,6 +12,11 @@ module Rallio
12
12
  Review.all(type: type, id: id, access_token: access_token)
13
13
  end
14
14
 
15
+ def self.for(franchisor_id:)
16
+ response = self.get("/franchisors/#{franchisor_id}/accounts", headers: app_credentials)
17
+ response.parsed_response['accounts'].map { |a| new a }
18
+ end
19
+
15
20
  private
16
21
 
17
22
  def type
@@ -0,0 +1,17 @@
1
+ module Rallio
2
+ class AccountOwnership < OwnershipsBase
3
+ attribute :user_id, Integer
4
+ attribute :account_id, Integer
5
+ attribute :account_name, String
6
+ attribute :account_franchisor_id, Integer
7
+ attribute :account_franchisor_name, String
8
+
9
+ def self.url_segment
10
+ 'account_ownerships'
11
+ end
12
+
13
+ def self.response_key
14
+ 'account_ownership'
15
+ end
16
+ end
17
+ end
data/lib/rallio/base.rb CHANGED
@@ -11,11 +11,5 @@ module Rallio
11
11
  'X-Application-Secret' => Rallio.application_secret
12
12
  }
13
13
  end
14
-
15
- private
16
-
17
- def app_credentials
18
- self.class.app_credentials
19
- end
20
14
  end
21
15
  end
@@ -6,8 +6,7 @@ module Rallio
6
6
  end
7
7
 
8
8
  def accounts
9
- response = self.class.get("/franchisors/#{id}/accounts", headers: app_credentials)
10
- response.parsed_response['accounts'].map { |a| Rallio::Account.new(a) }
9
+ Rallio::Account.for(franchisor_id: id)
11
10
  end
12
11
 
13
12
  private
@@ -0,0 +1,15 @@
1
+ module Rallio
2
+ class FranchisorOwnership < OwnershipsBase
3
+ attribute :user_id, Integer
4
+ attribute :franchisor_id, Integer
5
+ attribute :franchisor_name, String
6
+
7
+ def self.url_segment
8
+ 'franchisor_ownerships'
9
+ end
10
+
11
+ def self.response_key
12
+ 'franchisor_ownership'
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,18 @@
1
+ module Rallio
2
+ class OwnershipsBase < Base
3
+ def self.for(access_token:)
4
+ headers = { 'Authorization' => "Bearer #{access_token}" }
5
+ response = self.get("/#{url_segment}", headers: headers)
6
+ response.parsed_response["#{url_segment}"].map { |a| new(a) }
7
+ end
8
+
9
+ def self.create(user_id:, payload:)
10
+ response = self.post("/users/#{user_id}/#{url_segment}", headers: app_credentials, body: payload)
11
+ new response.parsed_response["#{response_key}"]
12
+ end
13
+
14
+ def self.destroy(user_id:, object_id:)
15
+ self.delete("/users/#{user_id}/#{url_segment}/#{object_id}", headers: app_credentials)
16
+ end
17
+ end
18
+ end
data/lib/rallio/user.rb CHANGED
@@ -28,13 +28,11 @@ module Rallio
28
28
  end
29
29
 
30
30
  def account_ownerships
31
- response = self.class.get('/account_ownerships', headers: user_credentials)
32
- response.parsed_response
31
+ AccountOwnership.for(access_token: access_token.access_token)
33
32
  end
34
33
 
35
34
  def franchisor_ownerships
36
- response = self.class.get('/franchisor_ownerships', headers: user_credentials)
37
- response.parsed_response
35
+ FranchisorOwnership.for(access_token: access_token.access_token)
38
36
  end
39
37
 
40
38
  # Initially this endpoint was in the API docs but it appears it may not be
@@ -45,11 +43,5 @@ module Rallio
45
43
  # self.attributes = response.parsed_response
46
44
  # self
47
45
  # end
48
-
49
- private
50
-
51
- def user_credentials
52
- { 'Authorization' => "Bearer #{access_token.access_token}" }
53
- end
54
46
  end
55
47
  end
@@ -1,3 +1,3 @@
1
1
  module Rallio
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rallio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JD Guzman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-10 00:00:00.000000000 Z
11
+ date: 2017-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -142,8 +142,11 @@ files:
142
142
  - lib/rallio.rb
143
143
  - lib/rallio/access_token.rb
144
144
  - lib/rallio/account.rb
145
+ - lib/rallio/account_ownership.rb
145
146
  - lib/rallio/base.rb
146
147
  - lib/rallio/franchisor.rb
148
+ - lib/rallio/franchisor_ownership.rb
149
+ - lib/rallio/ownerships_base.rb
147
150
  - lib/rallio/review.rb
148
151
  - lib/rallio/sign_on_token.rb
149
152
  - lib/rallio/user.rb