pco_api 2.0.1 → 2.1.0

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: 80591277ecc37d298f7a7c68c35d32cd9f5d117f401ee6c811a417aab5b9e494
4
- data.tar.gz: 756f395bb87741e0786452d1391a47c08bc3a36df064f8fa6d368706e49128de
3
+ metadata.gz: 24edea66c936c4da9459fdaa5a575c53f5ce412382536626524d5ad6891bbc70
4
+ data.tar.gz: 85d8c1dc776d5f1b00aa69e5505f2d5227062ad69ae7c24c4a4d1834a2760098
5
5
  SHA512:
6
- metadata.gz: a64b77f5502cb0e7a83b3841596002402ed6484738185f0397d4bd9fccd451c3b3494e95a7e9c13a22f9123e20509c484b77528db19a2b972e8bfc61db43ff3d
7
- data.tar.gz: a7c05f672220939fc491e20e334ba5511173ac4ed50e3bf3969530d7f1556cd7ed8147b0172dc1d727ed9696e134c32ab4a7cb3564585cfd96abea2743a8ff26
6
+ metadata.gz: 449d3b4f74b5aa220911116292ee0bfd70964a04d82f483db71dbbe9e796b87bf376a9c45925ce45debbec5d08fdc160b9179cfa7e47afc991cb4090c77f8a70
7
+ data.tar.gz: 7f4ea90c3e61e1f28d58197ea3f2c09932a8f950df1f09705497d50972a331fb035b07bcbca2d89c09c89f0243b23a439bbafefed767c9d4624094839b728b6d
@@ -1,5 +1,5 @@
1
1
  require 'faraday'
2
- require 'faraday_middleware'
2
+ require 'faraday/excon'
3
3
 
4
4
  module PCO
5
5
  module API
@@ -83,6 +83,10 @@ module PCO
83
83
 
84
84
  def _build_response(result)
85
85
  case result.status
86
+ when 204
87
+ res = Response.new
88
+ res.headers = result.headers
89
+ res
86
90
  when 200..299
87
91
  res = Response[result.body]
88
92
  res.headers = result.headers
@@ -137,7 +141,7 @@ module PCO
137
141
  Faraday.new(url: url) do |faraday|
138
142
  faraday.response :json, content_type: /\bjson$/
139
143
  if @basic_auth_token && @basic_auth_secret
140
- faraday.request :basic_auth, @basic_auth_token, @basic_auth_secret
144
+ faraday.request :authorization, :basic, @basic_auth_token, @basic_auth_secret
141
145
  elsif @oauth_access_token
142
146
  faraday.request :authorization, 'Bearer', @oauth_access_token
143
147
  else
@@ -158,4 +162,4 @@ module PCO
158
162
  end
159
163
  end
160
164
  end
161
- end
165
+ end
@@ -1,5 +1,5 @@
1
1
  module PCO
2
2
  module API
3
- VERSION = '2.0.1'
3
+ VERSION = '2.1.0'
4
4
  end
5
5
  end
data/lib/pco/api.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require_relative 'api/endpoint'
2
2
  require_relative 'api/errors'
3
+ require_relative 'api/version'
3
4
 
4
5
  module PCO
5
6
  module API
@@ -169,34 +169,51 @@ describe PCO::API::Endpoint do
169
169
  end
170
170
 
171
171
  describe '#post' do
172
- subject { base.people.v2.people }
172
+ context do
173
+ subject { base.people.v2.people }
173
174
 
174
- let(:resource) do
175
- {
176
- 'type' => 'Person',
177
- 'first_name' => 'Tim',
178
- 'last_name' => 'Morgan'
179
- }
180
- end
175
+ let(:resource) do
176
+ {
177
+ 'type' => 'Person',
178
+ 'first_name' => 'Tim',
179
+ 'last_name' => 'Morgan'
180
+ }
181
+ end
181
182
 
182
- let(:result) do
183
- {
184
- 'type' => 'Person',
185
- 'id' => '1',
186
- 'first_name' => 'Tim',
187
- 'last_name' => 'Morgan'
188
- }
189
- end
183
+ let(:result) do
184
+ {
185
+ 'type' => 'Person',
186
+ 'id' => '1',
187
+ 'first_name' => 'Tim',
188
+ 'last_name' => 'Morgan'
189
+ }
190
+ end
190
191
 
191
- before do
192
- stub_request(:post, 'https://api.planningcenteronline.com/people/v2/people')
193
- .to_return(status: 201, body: { data: result }.to_json, headers: { 'Content-Type' => 'application/vnd.api+json' })
194
- @result = subject.post(data: resource)
192
+ before do
193
+ stub_request(:post, 'https://api.planningcenteronline.com/people/v2/people')
194
+ .to_return(status: 201, body: { data: result }.to_json, headers: { 'Content-Type' => 'application/vnd.api+json' })
195
+ @result = subject.post(data: resource)
196
+ end
197
+
198
+ it 'returns the result of making a POST request to the endpoint' do
199
+ expect(@result).to be_a(Hash)
200
+ expect(@result['data']).to eq(result)
201
+ end
195
202
  end
196
203
 
197
- it 'returns the result of making a POST request to the endpoint' do
198
- expect(@result).to be_a(Hash)
199
- expect(@result['data']).to eq(result)
204
+ context 'given a 204 No Content response' do
205
+ subject { base.people.v2.some_action }
206
+
207
+ before do
208
+ stub_request(:post, 'https://api.planningcenteronline.com/people/v2/some_action')
209
+ .to_return(status: 204, body: '')
210
+ @result = subject.post
211
+ end
212
+
213
+ it 'returns an empty hash' do
214
+ expect(@result).to be_a(Hash)
215
+ expect(@result).to eq({})
216
+ end
200
217
  end
201
218
  end
202
219
 
metadata CHANGED
@@ -1,57 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pco_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Planning Center Online
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-08 00:00:00.000000000 Z
11
+ date: 2023-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.8'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.8'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: faraday_middleware
28
+ name: faraday-excon
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.2'
33
+ version: '2.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.2'
41
- - !ruby/object:Gem::Dependency
42
- name: excon
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: 0.71.0
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: 0.71.0
40
+ version: '2.1'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rspec
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -115,7 +101,7 @@ homepage: https://github.com/planningcenter/pco_api_ruby
115
101
  licenses:
116
102
  - MIT
117
103
  metadata: {}
118
- post_install_message:
104
+ post_install_message:
119
105
  rdoc_options: []
120
106
  require_paths:
121
107
  - lib
@@ -130,11 +116,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
130
116
  - !ruby/object:Gem::Version
131
117
  version: '0'
132
118
  requirements: []
133
- rubygems_version: 3.0.3.1
134
- signing_key:
119
+ rubygems_version: 3.4.2
120
+ signing_key:
135
121
  specification_version: 4
136
122
  summary: API wrapper for api.planningcenteronline.com
137
123
  test_files:
138
- - spec/pco/api_spec.rb
139
124
  - spec/pco/api/endpoint_spec.rb
125
+ - spec/pco/api_spec.rb
140
126
  - spec/spec_helper.rb