procore 0.6.8 → 0.6.9

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
  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