action_kit_rest 0.4.6 → 0.4.7
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1817fcc57f6d22b7c399e0face9405049f77417e6ea2b27c9e32218be76af124
|
4
|
+
data.tar.gz: 0eb382953e3c3c691191ce9f9c0ff61f5d39cefac40e77921ba2bc4d5366068f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f07602cc5779ae7eb6c7cfd5bad09ec780443c8b0e702a36264035a92add5b4ca06135196e4ea41aa6dcfa0e2d8ea7effa4777adc57e0842666199989db9bd39
|
7
|
+
data.tar.gz: cd5c4e3b3e70f5979cd42981b9c116ef475cf9af06ebd8e8c857b594d7a43f15dc9e12fec86de117adda5b691cc0b52571c461ef46035bee8ab97b09742e76ee
|
data/action_kit_rest.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: action_kit_rest 0.4.
|
5
|
+
# stub: action_kit_rest 0.4.7 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "action_kit_rest".freeze
|
9
|
-
s.version = "0.4.
|
9
|
+
s.version = "0.4.7"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Nathan Woodhull".freeze, "Diego Marcet".freeze, "Grey Moore".freeze]
|
14
|
-
s.date = "2021-
|
14
|
+
s.date = "2021-10-05"
|
15
15
|
s.description = "Gem for interacting with the ActionKit API".freeze
|
16
16
|
s.email = "systems@controlshiftlabs.com".freeze
|
17
17
|
s.extra_rdoc_files = [
|
@@ -77,6 +77,7 @@ Gem::Specification.new do |s|
|
|
77
77
|
"spec/lib/action_kit_rest/actions/event_create_action_spec.rb",
|
78
78
|
"spec/lib/action_kit_rest/actions/event_signup_action_spec.rb",
|
79
79
|
"spec/lib/action_kit_rest/allowed_user_field_spec.rb",
|
80
|
+
"spec/lib/action_kit_rest/api_spec.rb",
|
80
81
|
"spec/lib/action_kit_rest/logger_spec.rb",
|
81
82
|
"spec/lib/action_kit_rest/page_spec.rb",
|
82
83
|
"spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb",
|
@@ -8,7 +8,7 @@ module ActionKitRest
|
|
8
8
|
if (400...600).include? status_code
|
9
9
|
if status_code == 400
|
10
10
|
response_body = response[:body]
|
11
|
-
if JSON.parse(response_body)['errors']
|
11
|
+
if ActionKitRest::Response::InvalidAkidError.matches?(JSON.parse(response_body)['errors'])
|
12
12
|
raise ActionKitRest::Response::InvalidAkidError.new(url: response[:url].to_s, body: response_body)
|
13
13
|
else
|
14
14
|
raise ActionKitRest::Response::ValidationError.new(url: response[:url].to_s, body: response_body)
|
@@ -7,7 +7,7 @@ module ActionKitRest
|
|
7
7
|
|
8
8
|
def initialize(params)
|
9
9
|
self.url = params[:url]
|
10
|
-
self.body = params[:body]
|
10
|
+
self.body = params[:body].dup
|
11
11
|
self.errors = JSON.parse(params[:body])['errors']
|
12
12
|
super()
|
13
13
|
end
|
@@ -23,6 +23,17 @@ module ActionKitRest
|
|
23
23
|
end
|
24
24
|
|
25
25
|
class InvalidAkidError < ValidationError
|
26
|
+
MATCHING_ERRORS = ['Unable to associate this mailing ID with account.',
|
27
|
+
'לא הצלחנו לקשר בין מספר הזיהוי של רשימת הדיוור הזו לבין החשבון.'].freeze
|
28
|
+
|
29
|
+
def self.matches?(errors)
|
30
|
+
return false unless errors.keys == ['mailing_id']
|
31
|
+
|
32
|
+
mailing_id_errors = errors['mailing_id']
|
33
|
+
return false unless mailing_id_errors.size == 1
|
34
|
+
|
35
|
+
MATCHING_ERRORS.include?(mailing_id_errors.first)
|
36
|
+
end
|
26
37
|
end
|
27
38
|
end
|
28
39
|
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'support/shared_contexts/stub_logger'
|
5
|
+
|
6
|
+
describe ActionKitRest::API do
|
7
|
+
include_context 'stub_logger'
|
8
|
+
|
9
|
+
subject { ActionKitRest::API.new(host: 'example.com', username: 'foo', password: 'bar') }
|
10
|
+
|
11
|
+
describe 'error detection' do
|
12
|
+
let(:request_body) { {some: 'data'} }
|
13
|
+
|
14
|
+
before :each do
|
15
|
+
stub_request(:post, 'https://example.com/rest/v1/something/')
|
16
|
+
.to_return(status: response_status, body: response_body,
|
17
|
+
headers: { content_type: 'application/json; charset=utf-8' })
|
18
|
+
end
|
19
|
+
|
20
|
+
context 'successful response' do
|
21
|
+
let(:response_status) { 200 }
|
22
|
+
let(:response_body) { '{"message": "good job!"}' }
|
23
|
+
|
24
|
+
it 'should not raise' do
|
25
|
+
subject.post_request('something/', request_body)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context '400 response' do
|
30
|
+
let(:response_status) { 400 }
|
31
|
+
|
32
|
+
context 'unable to associate mailing ID' do
|
33
|
+
let(:response_body) { '{"errors": {"mailing_id": ["Unable to associate this mailing ID with account."]}}' }
|
34
|
+
|
35
|
+
it 'should raise an InvalidAkidError' do
|
36
|
+
expect{ subject.post_request('something/', request_body) }.to raise_error(ActionKitRest::Response::InvalidAkidError)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'unable to associate mailing ID error in Hebrew' do
|
41
|
+
let(:response_body) { '{"errors": {"mailing_id": ["לא הצלחנו לקשר בין מספר הזיהוי של רשימת הדיוור הזו לבין החשבון."]}}' }
|
42
|
+
|
43
|
+
it 'should raise an InvalidAkidError' do
|
44
|
+
expect{ subject.post_request('something/', request_body) }.to raise_error(ActionKitRest::Response::InvalidAkidError)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'other error' do
|
49
|
+
let(:response_body) { '{"errors": {"zip": ["There is something wrong with your ZIP code!"]}}' }
|
50
|
+
|
51
|
+
it 'sould raise a ValidationError' do
|
52
|
+
expect{ subject.post_request('something/', request_body) }.to raise_error(ActionKitRest::Response::ValidationError)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
context '401 response' do
|
58
|
+
let(:response_status) { 401 }
|
59
|
+
let(:response_body) { '{"error": "Your API key is no good"}' }
|
60
|
+
|
61
|
+
it 'should raise an Unauthorized exception' do
|
62
|
+
expect{ subject.post_request('something/', request_body) }.to raise_error(ActionKitRest::Response::Unauthorized)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context '404 response' do
|
67
|
+
let(:response_status) { 404 }
|
68
|
+
let(:response_body) { '{"error": "not found"}' }
|
69
|
+
|
70
|
+
it 'should raise a NotFound exception' do
|
71
|
+
expect{ subject.post_request('something/', request_body) }.to raise_error(ActionKitRest::Response::NotFound)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context '500 response' do
|
76
|
+
let(:response_status) { 500 }
|
77
|
+
|
78
|
+
context 'Try Again Later message' do
|
79
|
+
let(:response_body) { '{"error": "Sorry, this request could not be processed. Please try again later."}' }
|
80
|
+
|
81
|
+
it 'should raise a TryAgainLater exception' do
|
82
|
+
expect{ subject.post_request('something/', request_body) }.to raise_error(ActionKitRest::Response::TryAgainLater)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context 'other error message' do
|
87
|
+
let(:response_body) { '{"error": "Something is wrong, we will fix it!"}' }
|
88
|
+
|
89
|
+
it 'should raise a StandardError' do
|
90
|
+
expect{ subject.post_request('something/', request_body) }.to raise_error(StandardError)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Woodhull
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-
|
13
|
+
date: 2021-10-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: vertebrae
|
@@ -242,6 +242,7 @@ files:
|
|
242
242
|
- spec/lib/action_kit_rest/actions/event_create_action_spec.rb
|
243
243
|
- spec/lib/action_kit_rest/actions/event_signup_action_spec.rb
|
244
244
|
- spec/lib/action_kit_rest/allowed_user_field_spec.rb
|
245
|
+
- spec/lib/action_kit_rest/api_spec.rb
|
245
246
|
- spec/lib/action_kit_rest/logger_spec.rb
|
246
247
|
- spec/lib/action_kit_rest/page_spec.rb
|
247
248
|
- spec/lib/action_kit_rest/pages/event_campaign_page_spec.rb
|