procore 0.6.8 → 0.6.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56cc4c858cf5be92d0b0d0a88b5baa75504e93dadca7a626349afdf403be3ff1
4
- data.tar.gz: cc9610d7670952cb77d830a4481522d1c2d084627584dc22b79c2c2c0f98a171
3
+ metadata.gz: 5a122d8e74f07636c87c3db3bfedb0836f813e31c1e8a3b6df25f84da131f06a
4
+ data.tar.gz: 58b335464bf7b9c1bc7284e1651fc05d08796d348da464d6d327d8c0b8243a2a
5
5
  SHA512:
6
- metadata.gz: 5b158f1b94063622d7c013f4f021d757cdf08f09dd6474e8e5382b174591290161141a2dab515ab6ff6159e5cf92702885743e796d31ed00cb9d6278075999dc
7
- data.tar.gz: a579c807d7c74371ef21f5477f622081d8987eefe15f9c2afa3282dd2141ced7af3d2ca99bb1dcfdbe7f22ec3486e8c79bef6bf25b8e3d8da48bbfd064471b14
6
+ metadata.gz: 825662dbe28de8510a825cfd7e512050b7bf09da321a952587d8c243e05d71ba7b61af0fbc668334696ea0a61ddf065174055b6df38875e51c2b7735ac498110
7
+ data.tar.gz: f329ffd5f5cb34aa5571fc1f79b4a24b13a1c5ec25f981bef7d4be7e2e45fecf789792d971c00c287f534dea30cdcfadbe7d4689fe49d277752aa8a22b3bd692
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## Unreleased
2
2
 
3
+ ## 0.6.9 (February 09, 2018)
4
+
5
+ * Add HTTP PUT support
6
+
7
+ *Matt Brinza*
8
+
3
9
  ## 0.6.8 (January 04, 2018)
4
10
 
5
11
  * Wrap `AccessTokenCredentials` external errors with our own errors
data/README.md CHANGED
@@ -21,11 +21,13 @@ Stores automatically manage tokens for you - refreshing, revoking and storage
21
21
  are abstracted away to make your code as simple as possible. There are several
22
22
  different [types of stores](#stores) available to you.
23
23
 
24
- The client class exposes `#get`, `#post`, `#patch` and `#delete` methods to you.
24
+ The Client class exposes `#get`, `#post`, `#put`, `#patch` and `#delete` methods
25
+ to you.
25
26
 
26
27
  ```ruby
27
28
  get(path, query = {})
28
29
  post(path, body = {}, options = {})
30
+ put(path, body = {}, options = {})
29
31
  patch(path, body = {}, options = {})
30
32
  delete(path, query = {})
31
33
  ```
@@ -104,7 +106,7 @@ begin
104
106
  client.get("projects")
105
107
 
106
108
  rescue Procore::RateLimitError => e
107
- # Raised when a token reaches it's request limit for the current time period.
109
+ # Raised when a token reaches its request limit for the current time period.
108
110
  # If you are receiving this error then you are making too many requests
109
111
  # against the Procore API.
110
112
 
@@ -112,7 +114,7 @@ rescue Procore::NotFoundError => e
112
114
  # Raised when the request 404's
113
115
 
114
116
  rescue Procore::InvalidRequestError => e
115
- # Raised when the request is incorrectly formated. Possible causes: missing
117
+ # Raised when the request is incorrectly formatted. Possible causes: missing
116
118
  # required parameters or sending a request to access a non-existent resource.
117
119
 
118
120
  rescue Procore::OAuthError => e
@@ -128,7 +130,7 @@ rescue Procore::APIConnectionError => e
128
130
  # Procore is down or the network is doing something funny.
129
131
 
130
132
  rescue Procore::ServerError => e
131
- # Raised when a Procore endpoint returns a 500x resonse code.
133
+ # Raised when a Procore endpoint returns a 5xx response code.
132
134
 
133
135
  rescue Procore::Error => e
134
136
  # Generic catch all error.
@@ -300,7 +302,7 @@ Options: `key`: Unique identifier to an access token
300
302
  For applications which want to store access tokens in Redis. There's two
301
303
  required options, `redis` which is an instance of a Redis connection, and `key`
302
304
  which is a unique key which will be used to save / retrieve an access token.
303
- They key will usually be the id of the current user.
305
+ The key will usually be the id of the current user.
304
306
 
305
307
  ```ruby
306
308
  store = Procore::Auth::Stores::Redis.new(redis: Redis.new, key: current_user.id)
@@ -3,7 +3,7 @@ require "procore/requestable"
3
3
  module Procore
4
4
  # Main class end users interact with. An instance of a client can call out
5
5
  # the Procore API using methods matching standard HTTP verbs #get, #post,
6
- # #patch, #delete.
6
+ # #put, #patch, #delete.
7
7
  #
8
8
  # @example Creating a new client:
9
9
  # store = Procore::Auth::Stores::Session.new(session: session)
@@ -1,8 +1,8 @@
1
1
  require "httparty"
2
2
 
3
3
  module Procore
4
- # Module which defines HTTP verbs GET, POST, PATCH and DELETE. Is included in
5
- # Client. Has support for Idempotency Tokens on POST and PATCH.
4
+ # Module which defines HTTP verbs GET, POST, PUT, PATCH and DELETE. Is
5
+ # included in Client. Has support for Idempotency Tokens on POST and PATCH.
6
6
  #
7
7
  # @example Using #get:
8
8
  # client.get("my_open_items", per_page: 5)
@@ -63,12 +63,40 @@ module Procore
63
63
  end
64
64
  end
65
65
 
66
+ # @param path [String] URL path
67
+ # @param body [Hash] Body parameters to send with the request
68
+ # @param options [Hash} Extra request options
69
+ # TODO Add description for idempotency key
70
+ #
71
+ # @example Usage
72
+ # client.put("dashboards/1/users", [1,2,3])
73
+ #
74
+ # @return [Response]
75
+ def put(path, body = {}, options = {})
76
+ Util.log_info(
77
+ "API Request Initiated",
78
+ path: "#{base_api_path}/#{path}",
79
+ method: "PUT",
80
+ body: body.to_s,
81
+ )
82
+
83
+ with_response_handling do
84
+ HTTParty.put(
85
+ "#{base_api_path}/#{path}",
86
+ body: body.to_json,
87
+ headers: headers(options),
88
+ timeout: Procore.configuration.timeout,
89
+ )
90
+ end
91
+ end
92
+
66
93
  # @param path [String] URL path
67
94
  # @param body [Hash] Body parameters to send with the request
68
95
  # @param options [Hash} Extra request options
69
96
  # TODO Add description for idempotency token
70
97
  # @option options [String] :idempotency_token
71
98
  #
99
+ # @example Usage
72
100
  # client.patch("users/1", { name: "Updated" }, { idempotency_token: "key" })
73
101
  #
74
102
  # @return [Response]
@@ -1,3 +1,3 @@
1
1
  module Procore
2
- VERSION = "0.6.8".freeze
2
+ VERSION = "0.6.9".freeze
3
3
  end
data/procore.gemspec CHANGED
@@ -34,6 +34,6 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency "sqlite3"
35
35
  spec.add_development_dependency "webmock"
36
36
 
37
- spec.add_dependency "httparty", "~> 0.15"
37
+ spec.add_dependency "httparty", "~> 0.16"
38
38
  spec.add_dependency "oauth2", "~> 1.4"
39
39
  end
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.6.8
4
+ version: 0.6.9
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-01-05 00:00:00.000000000 Z
11
+ date: 2018-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -170,14 +170,14 @@ dependencies:
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '0.15'
173
+ version: '0.16'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '0.15'
180
+ version: '0.16'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: oauth2
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -247,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  requirements: []
249
249
  rubyforge_project:
250
- rubygems_version: 2.7.4
250
+ rubygems_version: 2.7.5
251
251
  signing_key:
252
252
  specification_version: 4
253
253
  summary: Procore Ruby Gem