action_kit_rest 0.4.0 → 0.4.5
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/.rubocop.yml +26 -0
- data/.ruby-version +1 -1
- data/.travis.yml +7 -1
- data/Gemfile +11 -9
- data/Rakefile +15 -18
- data/action_kit_rest.gemspec +39 -23
- data/lib/action_kit_rest.rb +2 -0
- data/lib/action_kit_rest/action.rb +3 -1
- data/lib/action_kit_rest/actions/event_create_action.rb +5 -3
- data/lib/action_kit_rest/actions/event_signup_action.rb +6 -3
- data/lib/action_kit_rest/actions/unsubscribe_action.rb +3 -1
- data/lib/action_kit_rest/allowed_user_field.rb +10 -0
- data/lib/action_kit_rest/api.rb +9 -7
- data/lib/action_kit_rest/base.rb +5 -4
- data/lib/action_kit_rest/client.rb +5 -3
- data/lib/action_kit_rest/event.rb +3 -1
- data/lib/action_kit_rest/event_signup.rb +3 -1
- data/lib/action_kit_rest/language.rb +3 -1
- data/lib/action_kit_rest/list.rb +3 -1
- data/lib/action_kit_rest/page.rb +4 -2
- data/lib/action_kit_rest/pages/base.rb +4 -5
- data/lib/action_kit_rest/pages/donation_page.rb +3 -1
- data/lib/action_kit_rest/pages/event_campaign_page.rb +4 -2
- data/lib/action_kit_rest/pages/import_page.rb +3 -1
- data/lib/action_kit_rest/pages/signup_page.rb +3 -1
- data/lib/action_kit_rest/pages/unsubscribe_page.rb +3 -1
- data/lib/action_kit_rest/phone.rb +2 -0
- data/lib/action_kit_rest/railties.rb +3 -1
- data/lib/action_kit_rest/response/collection.rb +4 -4
- data/lib/action_kit_rest/response/raise_error.rb +15 -12
- data/lib/action_kit_rest/response/validation_error.rb +7 -0
- data/lib/action_kit_rest/response/wrapper.rb +10 -10
- data/lib/action_kit_rest/tag.rb +6 -6
- data/lib/action_kit_rest/user.rb +3 -1
- data/lib/action_kit_rest/version.rb +3 -1
- data/spec/fixtures/allowed_user_field/get.json +19 -0
- data/spec/lib/action_kit_rest/actions/event_create_action_spec.rb +6 -4
- data/spec/lib/action_kit_rest/actions/event_signup_action_spec.rb +6 -4
- data/spec/lib/action_kit_rest/allowed_user_field_spec.rb +43 -5
- data/spec/lib/action_kit_rest/logger_spec.rb +7 -5
- data/spec/lib/action_kit_rest/page_spec.rb +28 -28
- data/spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb +25 -20
- data/spec/lib/action_kit_rest/pages/import_page_spec.rb +21 -17
- data/spec/lib/action_kit_rest/response/collection_spec.rb +13 -11
- data/spec/lib/action_kit_rest/response/validation_error_spec.rb +29 -0
- data/spec/lib/action_kit_rest/response/wrapper_spec.rb +6 -4
- data/spec/lib/action_kit_rest/user_spec.rb +11 -9
- data/spec/spec_helper.rb +6 -4
- data/spec/support/shared_contexts/stub_logger.rb +4 -2
- metadata +64 -59
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe ActionKitRest::Response::ValidationError do
|
6
|
+
describe '#to_s' do
|
7
|
+
subject { ActionKitRest::Response::ValidationError.new(url: url, body: body) }
|
8
|
+
|
9
|
+
context 'with a normal URL and body' do
|
10
|
+
let(:url) { 'https://actionkit.example.com/rest/v1/page/1' }
|
11
|
+
let(:errors) { { 'zip' => 'invalid zip code' } }
|
12
|
+
let(:body) { { errors: errors }.to_json }
|
13
|
+
|
14
|
+
it 'should put information in the string' do
|
15
|
+
expect(subject.to_s).to eq "ActionKitRest::Response::ValidationError \n url: #{url} \n body: #{body} \n errors: #{errors.inspect}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'with special characters in the body' do
|
20
|
+
let(:url) { 'https://actionkit.example.com/rest/v1/page/1' }
|
21
|
+
let(:errors) { { 'zip' => '☃' } }
|
22
|
+
let(:body) { { errors: errors }.to_json }
|
23
|
+
|
24
|
+
it 'should put information in the string' do
|
25
|
+
expect(subject.to_s).to eq "ActionKitRest::Response::ValidationError \n url: #{url} \n body: #{body} \n errors: #{errors.inspect}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -1,10 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe ActionKitRest::Response::Wrapper do
|
4
6
|
describe 'initialization' do
|
5
7
|
it "should be kind 'object' for objects" do
|
6
8
|
body = double
|
7
|
-
response = double(:
|
9
|
+
response = double(body: body)
|
8
10
|
|
9
11
|
wrapper = ActionKitRest::Response::Wrapper.new(response)
|
10
12
|
|
@@ -13,8 +15,8 @@ describe ActionKitRest::Response::Wrapper do
|
|
13
15
|
end
|
14
16
|
|
15
17
|
it "should be kind 'collection' for collections" do
|
16
|
-
body = double(:
|
17
|
-
response = double(:
|
18
|
+
body = double(meta: '', objects: [])
|
19
|
+
response = double(body: body)
|
18
20
|
|
19
21
|
wrapper = ActionKitRest::Response::Wrapper.new(response)
|
20
22
|
|
@@ -22,4 +24,4 @@ describe ActionKitRest::Response::Wrapper do
|
|
22
24
|
wrapper.collection?.should be_truthy
|
23
25
|
end
|
24
26
|
end
|
25
|
-
end
|
27
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe ActionKitRest::User do
|
@@ -11,16 +13,16 @@ describe ActionKitRest::User do
|
|
11
13
|
|
12
14
|
subject { ActionKitRest.new(host: 'test.com') }
|
13
15
|
|
14
|
-
describe
|
16
|
+
describe 'retrieval' do
|
15
17
|
let(:request_path) { 'user/1/' }
|
16
18
|
|
17
19
|
context 'without basic auth' do
|
18
20
|
before(:each) do
|
19
|
-
stub_get(request_path).to_return(:
|
20
|
-
:
|
21
|
+
stub_get(request_path).to_return(body: body, status: status,
|
22
|
+
headers: { content_type: 'application/json; charset=utf-8' })
|
21
23
|
end
|
22
24
|
|
23
|
-
describe
|
25
|
+
describe '.get' do
|
24
26
|
let(:status) { 200 }
|
25
27
|
|
26
28
|
context 'without phones' do
|
@@ -36,9 +38,9 @@ describe ActionKitRest::User do
|
|
36
38
|
let(:phone_body) { fixture('phone/object.json') }
|
37
39
|
|
38
40
|
it 'should include phones' do
|
39
|
-
stub_get('phone/?user=1').to_return(:
|
41
|
+
stub_get('phone/?user=1').to_return(body: phone_body, status: 200)
|
40
42
|
expect(subject.user.get(1).phones.count).to eq 3
|
41
|
-
expect(subject.user.get(1).phones.map(&:phone)).to match_array([
|
43
|
+
expect(subject.user.get(1).phones.map(&:phone)).to match_array(%w[7755555555 7755555577 310-310-3310])
|
42
44
|
end
|
43
45
|
end
|
44
46
|
end
|
@@ -47,7 +49,7 @@ describe ActionKitRest::User do
|
|
47
49
|
let(:body) { '' }
|
48
50
|
let(:status) { 404 }
|
49
51
|
|
50
|
-
it
|
52
|
+
it 'should raise an exception' do
|
51
53
|
expect { subject.user.get(1) }.to raise_error(ActionKitRest::Response::NotFound)
|
52
54
|
end
|
53
55
|
end
|
@@ -59,8 +61,8 @@ describe ActionKitRest::User do
|
|
59
61
|
subject { ActionKitRest.new(host: 'test.com', username: 'alice', password: 'somesecret') }
|
60
62
|
|
61
63
|
before(:each) do
|
62
|
-
stub_get(request_path).with(basic_auth: [
|
63
|
-
|
64
|
+
stub_get(request_path).with(basic_auth: %w[alice somesecret])
|
65
|
+
.to_return(body: body, status: 200, headers: { content_type: 'application/json; charset=utf-8' })
|
64
66
|
end
|
65
67
|
|
66
68
|
it 'should return a user object' do
|
data/spec/spec_helper.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rspec'
|
2
4
|
require 'webmock/rspec'
|
3
5
|
|
@@ -16,11 +18,11 @@ RSpec.configure do |config|
|
|
16
18
|
end
|
17
19
|
|
18
20
|
config.mock_with :rspec do |mocks|
|
19
|
-
mocks.syntax = [
|
21
|
+
mocks.syntax = %i[should expect]
|
20
22
|
end
|
21
23
|
|
22
24
|
config.expect_with :rspec do |c|
|
23
|
-
c.syntax = [
|
25
|
+
c.syntax = %i[should expect]
|
24
26
|
end
|
25
27
|
end
|
26
28
|
|
@@ -37,11 +39,11 @@ def stub_put(path)
|
|
37
39
|
end
|
38
40
|
|
39
41
|
def stub_action_kit_request(method, path)
|
40
|
-
stub_request(method,
|
42
|
+
stub_request(method, "https://test.com/rest/v1/#{path}")
|
41
43
|
end
|
42
44
|
|
43
45
|
def fixture_path
|
44
|
-
File.expand_path(
|
46
|
+
File.expand_path('fixtures', __dir__)
|
45
47
|
end
|
46
48
|
|
47
49
|
def fixture(file)
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
shared_context 'stub_logger' do
|
2
4
|
before(:each) do
|
3
5
|
logger = double
|
4
6
|
allow(logger).to receive(:debug).and_return(true)
|
@@ -6,4 +8,4 @@ shared_context "stub_logger" do
|
|
6
8
|
allow(ActionKitRest).to receive(:logger).and_return(logger)
|
7
9
|
allow(Vertebrae::Base).to receive(:logger).and_return(logger)
|
8
10
|
end
|
9
|
-
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,99 +1,105 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: action_kit_rest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Woodhull
|
8
8
|
- Diego Marcet
|
9
|
-
-
|
10
|
-
autorequire:
|
9
|
+
- Grey Moore
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-03-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: vertebrae
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - "
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.
|
21
|
+
version: 0.6.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
|
-
- - "
|
26
|
+
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 0.
|
28
|
+
version: 0.6.0
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
|
-
name:
|
30
|
+
name: bundler
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
|
-
- - "
|
33
|
+
- - ">="
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '
|
35
|
+
version: '2.0'
|
36
|
+
- - "<"
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '3.0'
|
36
39
|
type: :development
|
37
40
|
prerelease: false
|
38
41
|
version_requirements: !ruby/object:Gem::Requirement
|
39
42
|
requirements:
|
40
|
-
- - "
|
43
|
+
- - ">="
|
41
44
|
- !ruby/object:Gem::Version
|
42
|
-
version: '
|
45
|
+
version: '2.0'
|
46
|
+
- - "<"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '3.0'
|
43
49
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
50
|
+
name: byebug
|
45
51
|
requirement: !ruby/object:Gem::Requirement
|
46
52
|
requirements:
|
47
|
-
- - "
|
53
|
+
- - ">="
|
48
54
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
55
|
+
version: '0'
|
50
56
|
type: :development
|
51
57
|
prerelease: false
|
52
58
|
version_requirements: !ruby/object:Gem::Requirement
|
53
59
|
requirements:
|
54
|
-
- - "
|
60
|
+
- - ">="
|
55
61
|
- !ruby/object:Gem::Version
|
56
|
-
version: '
|
62
|
+
version: '0'
|
57
63
|
- !ruby/object:Gem::Dependency
|
58
|
-
name:
|
64
|
+
name: em-http-request
|
59
65
|
requirement: !ruby/object:Gem::Requirement
|
60
66
|
requirements:
|
61
67
|
- - ">="
|
62
68
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
69
|
+
version: 1.1.5
|
64
70
|
- - "<"
|
65
71
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
72
|
+
version: '2.0'
|
67
73
|
type: :development
|
68
74
|
prerelease: false
|
69
75
|
version_requirements: !ruby/object:Gem::Requirement
|
70
76
|
requirements:
|
71
77
|
- - ">="
|
72
78
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
79
|
+
version: 1.1.5
|
74
80
|
- - "<"
|
75
81
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
82
|
+
version: '2.0'
|
77
83
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
84
|
+
name: em-synchrony
|
79
85
|
requirement: !ruby/object:Gem::Requirement
|
80
86
|
requirements:
|
81
87
|
- - ">="
|
82
88
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
89
|
+
version: 1.0.6
|
84
90
|
- - "<"
|
85
91
|
- !ruby/object:Gem::Version
|
86
|
-
version: '
|
92
|
+
version: '2.0'
|
87
93
|
type: :development
|
88
94
|
prerelease: false
|
89
95
|
version_requirements: !ruby/object:Gem::Requirement
|
90
96
|
requirements:
|
91
97
|
- - ">="
|
92
98
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
99
|
+
version: 1.0.6
|
94
100
|
- - "<"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
102
|
+
version: '2.0'
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
name: eventmachine
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,65 +121,61 @@ dependencies:
|
|
115
121
|
- !ruby/object:Gem::Version
|
116
122
|
version: '2.0'
|
117
123
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
124
|
+
name: juwelier
|
119
125
|
requirement: !ruby/object:Gem::Requirement
|
120
126
|
requirements:
|
121
127
|
- - ">="
|
122
128
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
124
|
-
- - "<"
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
version: '2.0'
|
129
|
+
version: '0'
|
127
130
|
type: :development
|
128
131
|
prerelease: false
|
129
132
|
version_requirements: !ruby/object:Gem::Requirement
|
130
133
|
requirements:
|
131
134
|
- - ">="
|
132
135
|
- !ruby/object:Gem::Version
|
133
|
-
version:
|
134
|
-
- - "<"
|
135
|
-
- !ruby/object:Gem::Version
|
136
|
-
version: '2.0'
|
136
|
+
version: '0'
|
137
137
|
- !ruby/object:Gem::Dependency
|
138
|
-
name:
|
138
|
+
name: rspec
|
139
139
|
requirement: !ruby/object:Gem::Requirement
|
140
140
|
requirements:
|
141
|
-
- - "
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
version: 1.1.5
|
144
|
-
- - "<"
|
141
|
+
- - "~>"
|
145
142
|
- !ruby/object:Gem::Version
|
146
|
-
version: '
|
143
|
+
version: '3.7'
|
147
144
|
type: :development
|
148
145
|
prerelease: false
|
149
146
|
version_requirements: !ruby/object:Gem::Requirement
|
150
147
|
requirements:
|
151
|
-
- - "
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: 1.1.5
|
154
|
-
- - "<"
|
148
|
+
- - "~>"
|
155
149
|
- !ruby/object:Gem::Version
|
156
|
-
version: '
|
150
|
+
version: '3.7'
|
157
151
|
- !ruby/object:Gem::Dependency
|
158
|
-
name:
|
152
|
+
name: rubocop
|
159
153
|
requirement: !ruby/object:Gem::Requirement
|
160
154
|
requirements:
|
161
155
|
- - ">="
|
162
156
|
- !ruby/object:Gem::Version
|
163
|
-
version:
|
164
|
-
- - "<"
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: '3.0'
|
157
|
+
version: '0'
|
167
158
|
type: :development
|
168
159
|
prerelease: false
|
169
160
|
version_requirements: !ruby/object:Gem::Requirement
|
170
161
|
requirements:
|
171
162
|
- - ">="
|
172
163
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
174
|
-
|
164
|
+
version: '0'
|
165
|
+
- !ruby/object:Gem::Dependency
|
166
|
+
name: webmock
|
167
|
+
requirement: !ruby/object:Gem::Requirement
|
168
|
+
requirements:
|
169
|
+
- - "~>"
|
175
170
|
- !ruby/object:Gem::Version
|
176
|
-
version: '3.
|
171
|
+
version: '3.3'
|
172
|
+
type: :development
|
173
|
+
prerelease: false
|
174
|
+
version_requirements: !ruby/object:Gem::Requirement
|
175
|
+
requirements:
|
176
|
+
- - "~>"
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: '3.3'
|
177
179
|
description: Gem for interacting with the ActionKit API
|
178
180
|
email: systems@controlshiftlabs.com
|
179
181
|
executables: []
|
@@ -184,6 +186,7 @@ extra_rdoc_files:
|
|
184
186
|
files:
|
185
187
|
- ".document"
|
186
188
|
- ".rspec"
|
189
|
+
- ".rubocop.yml"
|
187
190
|
- ".ruby-gemset"
|
188
191
|
- ".ruby-version"
|
189
192
|
- ".travis.yml"
|
@@ -223,6 +226,7 @@ files:
|
|
223
226
|
- lib/action_kit_rest/version.rb
|
224
227
|
- spec/fixtures/action/event_create_action.json
|
225
228
|
- spec/fixtures/action/event_signup_action.json
|
229
|
+
- spec/fixtures/allowed_user_field/get.json
|
226
230
|
- spec/fixtures/allowed_user_field/list.json
|
227
231
|
- spec/fixtures/allowed_user_field/list_filtered.json
|
228
232
|
- spec/fixtures/error.json
|
@@ -243,6 +247,7 @@ files:
|
|
243
247
|
- spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb
|
244
248
|
- spec/lib/action_kit_rest/pages/import_page_spec.rb
|
245
249
|
- spec/lib/action_kit_rest/response/collection_spec.rb
|
250
|
+
- spec/lib/action_kit_rest/response/validation_error_spec.rb
|
246
251
|
- spec/lib/action_kit_rest/response/wrapper_spec.rb
|
247
252
|
- spec/lib/action_kit_rest/user_spec.rb
|
248
253
|
- spec/spec_helper.rb
|
@@ -251,7 +256,7 @@ homepage: http://github.com/controlshift/action_kit_rest
|
|
251
256
|
licenses:
|
252
257
|
- MIT
|
253
258
|
metadata: {}
|
254
|
-
post_install_message:
|
259
|
+
post_install_message:
|
255
260
|
rdoc_options: []
|
256
261
|
require_paths:
|
257
262
|
- lib
|
@@ -266,8 +271,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
266
271
|
- !ruby/object:Gem::Version
|
267
272
|
version: '0'
|
268
273
|
requirements: []
|
269
|
-
rubygems_version: 3.
|
270
|
-
signing_key:
|
274
|
+
rubygems_version: 3.0.8
|
275
|
+
signing_key:
|
271
276
|
specification_version: 4
|
272
277
|
summary: A wrapper for the ActionKit REST API
|
273
278
|
test_files: []
|