procore 0.8.5 → 0.8.6
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 +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +15 -0
- data/lib/procore.rb +1 -0
- data/lib/procore/auth/stores/dalli.rb +38 -0
- data/lib/procore/requestable.rb +24 -10
- data/lib/procore/version.rb +1 -1
- data/procore.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6545e8ea432e0c10b0a3cd0e1257e96b57bf18f44c6d3ecfd3fa5805212290db
|
4
|
+
data.tar.gz: c93910a023d455bcc2731f8f74a1ebe3631851c0b711cf4effff9f1fe84b4503
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6376d8a7cc0a0a494594ce185e77630b885da38bbd14614219f069e3eaccd7f0f7cc202f007ef58129db49910bd518523e285830fbd3d6c379d920fdeceef6f9
|
7
|
+
data.tar.gz: e258551108c844d80137919ce861233db506ba97d72598f93da3c2e7818425188857a42be0ef2b3d28dde99e95eb304f5d11b179b2f470c45dfde37574e7b742
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 0.8.6 (May 10, 2018)
|
4
|
+
|
5
|
+
* Dalli Store
|
6
|
+
|
7
|
+
*Patrick Koperwas*
|
8
|
+
|
9
|
+
* Fix Requestable paths to prevent double slash in URI
|
10
|
+
|
11
|
+
*Megan O'Neill*
|
12
|
+
|
3
13
|
## 0.8.5 (May 9, 2018)
|
4
14
|
* Rescue Errno::ECONNREFUSED errors and RestClient::ServerBrokeConnection
|
5
15
|
|
data/README.md
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
- [Stores](#stores)
|
15
15
|
- [Session Store](#session-store)
|
16
16
|
- [Redis Store](#redis-store)
|
17
|
+
- [Dalli Store](#dalli-store)
|
17
18
|
- [ActiveRecord Store](#activerecord-store)
|
18
19
|
- [File Store](#file-store)
|
19
20
|
- [Memory Store](#memory-store)
|
@@ -331,6 +332,20 @@ The key will usually be the id of the current user.
|
|
331
332
|
store = Procore::Auth::Stores::Redis.new(redis: Redis.new, key: current_user.id)
|
332
333
|
```
|
333
334
|
|
335
|
+
### Dalli Store
|
336
|
+
|
337
|
+
Options: `dalli`: Instance of Dalli
|
338
|
+
Options: `key`: Unique identifier to an access token
|
339
|
+
|
340
|
+
For applications which want to store access tokens in memcached using Dalli.
|
341
|
+
There's two required options, `dalli` which is an instance of a Dalli client,
|
342
|
+
and `key` which is a unique key which will be used to save / retrieve an access
|
343
|
+
token. The key will usually be the id of the current user.
|
344
|
+
|
345
|
+
```ruby
|
346
|
+
store = Procore::Auth::Stores::Dalli.new(dalli: Dalli.new, key: current_user.id)
|
347
|
+
```
|
348
|
+
|
334
349
|
### ActiveRecord Store
|
335
350
|
|
336
351
|
Options: `object`: Instance of an ActiveRecord model.
|
data/lib/procore.rb
CHANGED
@@ -7,6 +7,7 @@ require "json"
|
|
7
7
|
require "procore/auth/access_token_credentials"
|
8
8
|
require "procore/auth/client_credentials"
|
9
9
|
require "procore/auth/stores/active_record"
|
10
|
+
require "procore/auth/stores/dalli"
|
10
11
|
require "procore/auth/stores/file"
|
11
12
|
require "procore/auth/stores/memory"
|
12
13
|
require "procore/auth/stores/redis"
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Procore
|
2
|
+
module Auth
|
3
|
+
module Stores
|
4
|
+
class Dalli
|
5
|
+
attr_reader :key, :dalli
|
6
|
+
def initialize(key:, dalli:)
|
7
|
+
@key = key
|
8
|
+
@dalli = dalli
|
9
|
+
end
|
10
|
+
|
11
|
+
def save(token)
|
12
|
+
dalli.set(dalli_key, token.to_json)
|
13
|
+
end
|
14
|
+
|
15
|
+
def fetch
|
16
|
+
return unless dalli.get(dalli_key)
|
17
|
+
|
18
|
+
token = JSON.parse(dalli.get(dalli_key))
|
19
|
+
Procore::Auth::Token.new(
|
20
|
+
access_token: token["access_token"],
|
21
|
+
refresh_token: token["refresh_token"],
|
22
|
+
expires_at: token["expires_at"],
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
def delete
|
27
|
+
dalli.delete(dalli_key)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def dalli_key
|
33
|
+
"procore-dalli-#{key}"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/procore/requestable.rb
CHANGED
@@ -27,9 +27,11 @@ module Procore
|
|
27
27
|
#
|
28
28
|
# @return [Response]
|
29
29
|
def get(path, query: {}, options: {})
|
30
|
+
full_path = full_path(path)
|
31
|
+
|
30
32
|
Util.log_info(
|
31
33
|
"API Request Initiated",
|
32
|
-
path:
|
34
|
+
path: full_path,
|
33
35
|
method: "GET",
|
34
36
|
query: query.to_s,
|
35
37
|
)
|
@@ -37,7 +39,7 @@ module Procore
|
|
37
39
|
with_response_handling do
|
38
40
|
RestClient::Request.execute(
|
39
41
|
method: :get,
|
40
|
-
url:
|
42
|
+
url: full_path,
|
41
43
|
headers: headers(options).merge(params: query),
|
42
44
|
timeout: Procore.configuration.timeout,
|
43
45
|
)
|
@@ -58,9 +60,11 @@ module Procore
|
|
58
60
|
#
|
59
61
|
# @return [Response]
|
60
62
|
def post(path, body: {}, options: {})
|
63
|
+
full_path = full_path(path)
|
64
|
+
|
61
65
|
Util.log_info(
|
62
66
|
"API Request Initiated",
|
63
|
-
path:
|
67
|
+
path: full_path,
|
64
68
|
method: "POST",
|
65
69
|
body: body.to_s,
|
66
70
|
)
|
@@ -68,7 +72,7 @@ module Procore
|
|
68
72
|
with_response_handling(request_body: body) do
|
69
73
|
RestClient::Request.execute(
|
70
74
|
method: :post,
|
71
|
-
url:
|
75
|
+
url: full_path,
|
72
76
|
payload: payload(body),
|
73
77
|
headers: headers(options),
|
74
78
|
timeout: Procore.configuration.timeout,
|
@@ -86,9 +90,11 @@ module Procore
|
|
86
90
|
#
|
87
91
|
# @return [Response]
|
88
92
|
def put(path, body: {}, options: {})
|
93
|
+
full_path = full_path(path)
|
94
|
+
|
89
95
|
Util.log_info(
|
90
96
|
"API Request Initiated",
|
91
|
-
path:
|
97
|
+
path: full_path,
|
92
98
|
method: "PUT",
|
93
99
|
body: body.to_s,
|
94
100
|
)
|
@@ -96,7 +102,7 @@ module Procore
|
|
96
102
|
with_response_handling(request_body: body) do
|
97
103
|
RestClient::Request.execute(
|
98
104
|
method: :put,
|
99
|
-
url:
|
105
|
+
url: full_path,
|
100
106
|
payload: payload(body),
|
101
107
|
headers: headers(options),
|
102
108
|
timeout: Procore.configuration.timeout,
|
@@ -118,9 +124,11 @@ module Procore
|
|
118
124
|
#
|
119
125
|
# @return [Response]
|
120
126
|
def patch(path, body: {}, options: {})
|
127
|
+
full_path = full_path(path)
|
128
|
+
|
121
129
|
Util.log_info(
|
122
130
|
"API Request Initiated",
|
123
|
-
path:
|
131
|
+
path: full_path,
|
124
132
|
method: "PATCH",
|
125
133
|
body: body.to_s,
|
126
134
|
)
|
@@ -128,7 +136,7 @@ module Procore
|
|
128
136
|
with_response_handling(request_body: body) do
|
129
137
|
RestClient::Request.execute(
|
130
138
|
method: :patch,
|
131
|
-
url:
|
139
|
+
url: full_path,
|
132
140
|
payload: payload(body),
|
133
141
|
headers: headers(options),
|
134
142
|
timeout: Procore.configuration.timeout,
|
@@ -145,9 +153,11 @@ module Procore
|
|
145
153
|
#
|
146
154
|
# @return [Response]
|
147
155
|
def delete(path, query: {}, options: {})
|
156
|
+
full_path = full_path(path)
|
157
|
+
|
148
158
|
Util.log_info(
|
149
159
|
"API Request Initiated",
|
150
|
-
path:
|
160
|
+
path: full_path,
|
151
161
|
method: "DELETE",
|
152
162
|
headers: headers(options),
|
153
163
|
query: query.to_s,
|
@@ -156,7 +166,7 @@ module Procore
|
|
156
166
|
with_response_handling do
|
157
167
|
RestClient::Request.execute(
|
158
168
|
method: :delete,
|
159
|
-
url:
|
169
|
+
url: full_path,
|
160
170
|
headers: headers.merge(params: query),
|
161
171
|
timeout: Procore.configuration.timeout,
|
162
172
|
)
|
@@ -285,5 +295,9 @@ module Procore
|
|
285
295
|
def multipart?(body)
|
286
296
|
RestClient::Payload::has_file?(body)
|
287
297
|
end
|
298
|
+
|
299
|
+
def full_path(path)
|
300
|
+
File.join(base_api_path, path).to_s
|
301
|
+
end
|
288
302
|
end
|
289
303
|
end
|
data/lib/procore/version.rb
CHANGED
data/procore.gemspec
CHANGED
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_development_dependency "actionpack"
|
26
26
|
spec.add_development_dependency "activerecord"
|
27
27
|
spec.add_development_dependency "bundler"
|
28
|
+
spec.add_development_dependency "dalli"
|
28
29
|
spec.add_development_dependency "fakefs"
|
29
30
|
spec.add_development_dependency "minitest"
|
30
31
|
spec.add_development_dependency "pry"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: procore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Procore Engineering
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: dalli
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: fakefs
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -227,6 +241,7 @@ files:
|
|
227
241
|
- lib/procore/auth/access_token_credentials.rb
|
228
242
|
- lib/procore/auth/client_credentials.rb
|
229
243
|
- lib/procore/auth/stores/active_record.rb
|
244
|
+
- lib/procore/auth/stores/dalli.rb
|
230
245
|
- lib/procore/auth/stores/file.rb
|
231
246
|
- lib/procore/auth/stores/memory.rb
|
232
247
|
- lib/procore/auth/stores/redis.rb
|