engaging-networks-rest 0.7.0 → 1.0.0
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/.github/workflows/ci.yml +2 -2
- data/.gitignore +53 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +13 -0
- data/Gemfile +2 -14
- data/Rakefile +0 -15
- data/VERSION +1 -1
- data/engaging-networks-rest.gemspec +21 -56
- data/lib/engaging_networks_rest/client.rb +3 -5
- data/lib/engaging_networks_rest.rb +2 -2
- metadata +11 -41
- data/spec/client/pages_spec.rb +0 -137
- data/spec/client_spec.rb +0 -44
- data/spec/spec_helper.rb +0 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 50d7f225fefc60a2c7aca2d2bc17c290a0a483548d86b78cb138b1333a131c09
|
|
4
|
+
data.tar.gz: e172253dbccf464fa9f8862e0dcb5afd3802cc5745f1dd7a79fe4fdfc8981d9a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5363d9b2582910b3b54a69eff21226508fe39986a89103f73676ffc5b18436a7d787b3890940e7d1a7d2b8d803534507ba2cdd2b1c3d2531cc2de1409b05f2de
|
|
7
|
+
data.tar.gz: 0efb3821b1caf980c4a56c2acf87fc2814721e8e7206bcfb853e22de59798a16d48ea3a66b8506b8e781bdd6174bc48ee395da3eb218e49287eeb14035813986
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -7,7 +7,7 @@ jobs:
|
|
|
7
7
|
|
|
8
8
|
strategy:
|
|
9
9
|
matrix:
|
|
10
|
-
ruby-version: ['
|
|
10
|
+
ruby-version: ['3.1', '3.2']
|
|
11
11
|
|
|
12
12
|
steps:
|
|
13
13
|
- uses: actions/checkout@v2
|
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
|
|
24
24
|
strategy:
|
|
25
25
|
matrix:
|
|
26
|
-
ruby-version: ['
|
|
26
|
+
ruby-version: ['3.1', '3.2']
|
|
27
27
|
|
|
28
28
|
steps:
|
|
29
29
|
- uses: actions/checkout@v2
|
data/.gitignore
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
*.gem
|
|
2
|
+
*.rbc
|
|
3
|
+
/.config
|
|
4
|
+
/coverage/
|
|
5
|
+
/InstalledFiles
|
|
6
|
+
/pkg/
|
|
7
|
+
/spec/reports/
|
|
8
|
+
/spec/examples.txt
|
|
9
|
+
/test/tmp/
|
|
10
|
+
/test/version_tmp/
|
|
11
|
+
/tmp/
|
|
12
|
+
|
|
13
|
+
# Used by dotenv library to load environment variables.
|
|
14
|
+
# .env
|
|
15
|
+
|
|
16
|
+
## Specific to RubyMotion:
|
|
17
|
+
.dat*
|
|
18
|
+
.repl_history
|
|
19
|
+
build/
|
|
20
|
+
*.bridgesupport
|
|
21
|
+
build-iPhoneOS/
|
|
22
|
+
build-iPhoneSimulator/
|
|
23
|
+
|
|
24
|
+
## Specific to RubyMotion (use of CocoaPods):
|
|
25
|
+
#
|
|
26
|
+
# We recommend against adding the Pods directory to your .gitignore. However
|
|
27
|
+
# you should judge for yourself, the pros and cons are mentioned at:
|
|
28
|
+
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
|
29
|
+
#
|
|
30
|
+
# vendor/Pods/
|
|
31
|
+
|
|
32
|
+
## Documentation cache and generated files:
|
|
33
|
+
/.yardoc/
|
|
34
|
+
/_yardoc/
|
|
35
|
+
/doc/
|
|
36
|
+
/rdoc/
|
|
37
|
+
|
|
38
|
+
## Environment normalization:
|
|
39
|
+
/.bundle/
|
|
40
|
+
/vendor/bundle
|
|
41
|
+
/lib/bundler/man/
|
|
42
|
+
|
|
43
|
+
# for a library or gem, you might want to ignore these files since the code is
|
|
44
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
45
|
+
Gemfile.lock
|
|
46
|
+
# .ruby-version
|
|
47
|
+
# .ruby-gemset
|
|
48
|
+
|
|
49
|
+
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
|
50
|
+
.rvmrc
|
|
51
|
+
|
|
52
|
+
.idea/
|
|
53
|
+
.byebug_history
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.1.4
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [1.0.0] - 2023-10-17
|
|
4
|
+
|
|
5
|
+
### BREAKING CHANGES
|
|
6
|
+
- Drops support for ruby versions 2.7 and 3.0. Only ruby 3.1 or newer is now supported.
|
|
7
|
+
- `EngagingNetworksRest.new` and `EngagingNetworksRest::Client.new` now require the `host` parameter
|
|
8
|
+
|
|
9
|
+
### Development changes
|
|
10
|
+
- Removed juwelier. Dependencies are now managed only in the gemspec file.
|
|
11
|
+
- Replaced byebug with debug
|
|
12
|
+
- Upgraded required faker version to eliminate the need for pinning psych
|
|
13
|
+
|
|
1
14
|
## [0.7.0] - 2023-10-16
|
|
2
15
|
|
|
3
16
|
### Added
|
data/Gemfile
CHANGED
|
@@ -2,17 +2,5 @@
|
|
|
2
2
|
|
|
3
3
|
source 'https://rubygems.org'
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
group :development do
|
|
9
|
-
gem 'faker', '> 1.9'
|
|
10
|
-
gem 'psych', '3.3.2' # See https://github.com/faker-ruby/faker/issues/2330
|
|
11
|
-
|
|
12
|
-
gem 'faraday-detailed_logger', '>= 2.1.2'
|
|
13
|
-
gem 'juwelier', git: 'https://github.com/flajann2/juwelier.git'
|
|
14
|
-
gem 'pry-byebug', '> 3.6'
|
|
15
|
-
gem 'rspec', '>= 0'
|
|
16
|
-
gem 'rubocop'
|
|
17
|
-
gem 'webmock', '> 3.4'
|
|
18
|
-
end
|
|
5
|
+
# Gem's dependencies are specified in engaging-networks-rest.gemspec
|
|
6
|
+
gemspec
|
data/Rakefile
CHANGED
|
@@ -11,21 +11,6 @@ rescue Bundler::BundlerError => e
|
|
|
11
11
|
end
|
|
12
12
|
require 'rake'
|
|
13
13
|
|
|
14
|
-
require 'juwelier'
|
|
15
|
-
Juwelier::Tasks.new do |gem|
|
|
16
|
-
# gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
|
|
17
|
-
gem.name = 'engaging-networks-rest'
|
|
18
|
-
gem.homepage = 'http://github.com/controlshift/engaging-networks-rest'
|
|
19
|
-
gem.license = 'MIT'
|
|
20
|
-
gem.summary = %(Client gem for the ENS API to Engaging Networks)
|
|
21
|
-
gem.description = %(Client gem for the ENS API to Engaging Networks)
|
|
22
|
-
gem.email = 'grey@controlshiftlabs.com'
|
|
23
|
-
gem.authors = ['Grey Moore']
|
|
24
|
-
|
|
25
|
-
# dependencies defined in Gemfile
|
|
26
|
-
end
|
|
27
|
-
Juwelier::RubygemsDotOrgTasks.new
|
|
28
|
-
|
|
29
14
|
require 'rspec/core/rake_task'
|
|
30
15
|
desc 'Run specs'
|
|
31
16
|
RSpec::Core::RakeTask.new do |t|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
1.0.0
|
|
@@ -1,77 +1,42 @@
|
|
|
1
|
-
#
|
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
|
-
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: engaging-networks-rest 0.7.0 ruby lib
|
|
1
|
+
# frozen_string_literal: true
|
|
6
2
|
|
|
7
3
|
Gem::Specification.new do |s|
|
|
8
4
|
s.name = "engaging-networks-rest".freeze
|
|
9
|
-
s.version = "0.
|
|
5
|
+
s.version = "1.0.0"
|
|
10
6
|
|
|
11
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
12
8
|
s.require_paths = ["lib".freeze]
|
|
13
9
|
s.authors = ["Grey Moore".freeze]
|
|
14
|
-
s.date = "2023-10-
|
|
10
|
+
s.date = "2023-10-17"
|
|
15
11
|
s.description = "Client gem for the ENS API to Engaging Networks".freeze
|
|
16
|
-
s.email = "
|
|
12
|
+
s.email = "systems@controlshiftlabs.com".freeze
|
|
17
13
|
s.extra_rdoc_files = [
|
|
18
14
|
"LICENSE",
|
|
19
15
|
"LICENSE.txt",
|
|
20
16
|
"README.md"
|
|
21
17
|
]
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
".
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"LICENSE.txt",
|
|
31
|
-
"README.md",
|
|
32
|
-
"Rakefile",
|
|
33
|
-
"VERSION",
|
|
34
|
-
"engaging-networks-rest.gemspec",
|
|
35
|
-
"example.rb",
|
|
36
|
-
"lib/engaging_networks_rest.rb",
|
|
37
|
-
"lib/engaging_networks_rest/client.rb",
|
|
38
|
-
"lib/engaging_networks_rest/client/pages.rb",
|
|
39
|
-
"lib/engaging_networks_rest/response/raise_error.rb",
|
|
40
|
-
"spec/client/pages_spec.rb",
|
|
41
|
-
"spec/client_spec.rb",
|
|
42
|
-
"spec/spec_helper.rb"
|
|
43
|
-
]
|
|
44
|
-
s.homepage = "http://github.com/controlshift/engaging-networks-rest".freeze
|
|
18
|
+
|
|
19
|
+
# Specify which files should be added to the gem when it is released.
|
|
20
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
|
21
|
+
s.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
22
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
s.homepage = 'https://github.com/controlshift/engaging-networks-rest'.freeze
|
|
45
26
|
s.licenses = ["MIT".freeze]
|
|
46
|
-
s.rubygems_version = "3.1.6".freeze
|
|
47
27
|
s.summary = "Client gem for the ENS API to Engaging Networks".freeze
|
|
48
28
|
|
|
49
29
|
if s.respond_to? :specification_version then
|
|
50
30
|
s.specification_version = 4
|
|
51
31
|
end
|
|
52
32
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
s.add_runtime_dependency(%q<faraday_middleware>.freeze, [">= 0"])
|
|
56
|
-
s.add_development_dependency(%q<faker>.freeze, ["> 1.9"])
|
|
57
|
-
s.add_development_dependency(%q<psych>.freeze, ["= 3.3.2"])
|
|
58
|
-
s.add_development_dependency(%q<faraday-detailed_logger>.freeze, [">= 2.1.2"])
|
|
59
|
-
s.add_development_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
60
|
-
s.add_development_dependency(%q<pry-byebug>.freeze, ["> 3.6"])
|
|
61
|
-
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
|
62
|
-
s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
|
|
63
|
-
s.add_development_dependency(%q<webmock>.freeze, ["> 3.4"])
|
|
64
|
-
else
|
|
65
|
-
s.add_dependency(%q<faraday>.freeze, [">= 1.0"])
|
|
66
|
-
s.add_dependency(%q<faraday_middleware>.freeze, [">= 0"])
|
|
67
|
-
s.add_dependency(%q<faker>.freeze, ["> 1.9"])
|
|
68
|
-
s.add_dependency(%q<psych>.freeze, ["= 3.3.2"])
|
|
69
|
-
s.add_dependency(%q<faraday-detailed_logger>.freeze, [">= 2.1.2"])
|
|
70
|
-
s.add_dependency(%q<juwelier>.freeze, [">= 0"])
|
|
71
|
-
s.add_dependency(%q<pry-byebug>.freeze, ["> 3.6"])
|
|
72
|
-
s.add_dependency(%q<rspec>.freeze, [">= 0"])
|
|
73
|
-
s.add_dependency(%q<rubocop>.freeze, [">= 0"])
|
|
74
|
-
s.add_dependency(%q<webmock>.freeze, ["> 3.4"])
|
|
75
|
-
end
|
|
76
|
-
end
|
|
33
|
+
s.add_runtime_dependency(%q<faraday>.freeze, [">= 1.0"])
|
|
34
|
+
s.add_runtime_dependency(%q<faraday_middleware>.freeze, [">= 0"])
|
|
77
35
|
|
|
36
|
+
s.add_development_dependency(%q<faker>.freeze, ["> 2.20.0"])
|
|
37
|
+
s.add_development_dependency(%q<faraday-detailed_logger>.freeze, [">= 2.1.2"])
|
|
38
|
+
s.add_development_dependency(%q<debug>.freeze, ["> 0"])
|
|
39
|
+
s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
|
|
40
|
+
s.add_development_dependency(%q<rubocop>.freeze, [">= 0"])
|
|
41
|
+
s.add_development_dependency(%q<webmock>.freeze, ["> 3.4"])
|
|
42
|
+
end
|
|
@@ -9,9 +9,7 @@ module EngagingNetworksRest
|
|
|
9
9
|
class Client
|
|
10
10
|
attr_reader :api_key, :connection, :ens_auth_key
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def initialize(api_key:, host: ENS_DOMAIN)
|
|
12
|
+
def initialize(api_key:, host:)
|
|
15
13
|
@api_key = api_key
|
|
16
14
|
|
|
17
15
|
@connection = Faraday.new(url: "https://#{host}") do |conn|
|
|
@@ -40,11 +38,11 @@ module EngagingNetworksRest
|
|
|
40
38
|
end
|
|
41
39
|
|
|
42
40
|
def get(path:, params: {})
|
|
43
|
-
request(method: :get, path
|
|
41
|
+
request(method: :get, path:, params:)
|
|
44
42
|
end
|
|
45
43
|
|
|
46
44
|
def post(path:, body: {})
|
|
47
|
-
request(method: :post, path
|
|
45
|
+
request(method: :post, path:, body:)
|
|
48
46
|
end
|
|
49
47
|
|
|
50
48
|
include EngagingNetworksRest::Client::Pages
|
|
@@ -4,8 +4,8 @@ require 'engaging_networks_rest/client'
|
|
|
4
4
|
|
|
5
5
|
module EngagingNetworksRest
|
|
6
6
|
class << self
|
|
7
|
-
def new(api_key:, host:
|
|
8
|
-
EngagingNetworksRest::Client.new(api_key
|
|
7
|
+
def new(api_key:, host:)
|
|
8
|
+
EngagingNetworksRest::Client.new(api_key:, host:)
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: engaging-networks-rest
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Grey Moore
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2023-10-
|
|
11
|
+
date: 2023-10-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -44,28 +44,14 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - ">"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: 2.20.0
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - ">"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: psych
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - '='
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: 3.3.2
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - '='
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: 3.3.2
|
|
54
|
+
version: 2.20.0
|
|
69
55
|
- !ruby/object:Gem::Dependency
|
|
70
56
|
name: faraday-detailed_logger
|
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -81,33 +67,19 @@ dependencies:
|
|
|
81
67
|
- !ruby/object:Gem::Version
|
|
82
68
|
version: 2.1.2
|
|
83
69
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
|
86
|
-
requirements:
|
|
87
|
-
- - ">="
|
|
88
|
-
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0'
|
|
90
|
-
type: :development
|
|
91
|
-
prerelease: false
|
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
-
requirements:
|
|
94
|
-
- - ">="
|
|
95
|
-
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
97
|
-
- !ruby/object:Gem::Dependency
|
|
98
|
-
name: pry-byebug
|
|
70
|
+
name: debug
|
|
99
71
|
requirement: !ruby/object:Gem::Requirement
|
|
100
72
|
requirements:
|
|
101
73
|
- - ">"
|
|
102
74
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
75
|
+
version: '0'
|
|
104
76
|
type: :development
|
|
105
77
|
prerelease: false
|
|
106
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
79
|
requirements:
|
|
108
80
|
- - ">"
|
|
109
81
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '
|
|
82
|
+
version: '0'
|
|
111
83
|
- !ruby/object:Gem::Dependency
|
|
112
84
|
name: rspec
|
|
113
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -151,7 +123,7 @@ dependencies:
|
|
|
151
123
|
- !ruby/object:Gem::Version
|
|
152
124
|
version: '3.4'
|
|
153
125
|
description: Client gem for the ENS API to Engaging Networks
|
|
154
|
-
email:
|
|
126
|
+
email: systems@controlshiftlabs.com
|
|
155
127
|
executables: []
|
|
156
128
|
extensions: []
|
|
157
129
|
extra_rdoc_files:
|
|
@@ -160,6 +132,7 @@ extra_rdoc_files:
|
|
|
160
132
|
- README.md
|
|
161
133
|
files:
|
|
162
134
|
- ".github/workflows/ci.yml"
|
|
135
|
+
- ".gitignore"
|
|
163
136
|
- ".rubocop.yml"
|
|
164
137
|
- ".ruby-gemset"
|
|
165
138
|
- ".ruby-version"
|
|
@@ -176,10 +149,7 @@ files:
|
|
|
176
149
|
- lib/engaging_networks_rest/client.rb
|
|
177
150
|
- lib/engaging_networks_rest/client/pages.rb
|
|
178
151
|
- lib/engaging_networks_rest/response/raise_error.rb
|
|
179
|
-
|
|
180
|
-
- spec/client_spec.rb
|
|
181
|
-
- spec/spec_helper.rb
|
|
182
|
-
homepage: http://github.com/controlshift/engaging-networks-rest
|
|
152
|
+
homepage: https://github.com/controlshift/engaging-networks-rest
|
|
183
153
|
licenses:
|
|
184
154
|
- MIT
|
|
185
155
|
metadata: {}
|
|
@@ -198,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
198
168
|
- !ruby/object:Gem::Version
|
|
199
169
|
version: '0'
|
|
200
170
|
requirements: []
|
|
201
|
-
rubygems_version: 3.
|
|
171
|
+
rubygems_version: 3.3.26
|
|
202
172
|
signing_key:
|
|
203
173
|
specification_version: 4
|
|
204
174
|
summary: Client gem for the ENS API to Engaging Networks
|
data/spec/client/pages_spec.rb
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
describe EngagingNetworksRest::Client::Pages do
|
|
6
|
-
let(:api_key) { 'abc-123' }
|
|
7
|
-
let(:ens_auth_key) { 'tmp-auth-key-456' }
|
|
8
|
-
let(:standard_headers) { { 'Content-Type' => 'application/json', 'Ens-Auth-Token' => ens_auth_key } }
|
|
9
|
-
|
|
10
|
-
subject { EngagingNetworksRest::Client.new(api_key: api_key) }
|
|
11
|
-
|
|
12
|
-
describe '#pages' do
|
|
13
|
-
let(:page_type) { 'dcf' }
|
|
14
|
-
let(:page_status) { 'live' }
|
|
15
|
-
let(:pages_url) { "https://#{EngagingNetworksRest::Client::ENS_DOMAIN}/ens/service/page" }
|
|
16
|
-
|
|
17
|
-
# The API docs don't actually say what this response looks like, so this is a guess.
|
|
18
|
-
# Fortunately, it doesn't actually matter for our purposes, since we just return whatever JSON we get.
|
|
19
|
-
let(:response) { [{ 'id' => 123, 'title' => 'A page' }, { 'id' => 234, 'title' => 'Another page' }] }
|
|
20
|
-
|
|
21
|
-
shared_examples_for 'list pages' do
|
|
22
|
-
it 'should get pages' do
|
|
23
|
-
stub_request(:get, pages_url)
|
|
24
|
-
.with(headers: standard_headers, query: { 'type' => page_type, 'status' => page_status })
|
|
25
|
-
.to_return(status: '200',
|
|
26
|
-
headers: { content_type: 'application/json; charset=utf-8' },
|
|
27
|
-
body: response.to_json)
|
|
28
|
-
|
|
29
|
-
expect(subject.pages(type: page_type, status: page_status)).to eq response
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
it 'should omit status param if not specified' do
|
|
33
|
-
stub_request(:get, pages_url)
|
|
34
|
-
.with(headers: standard_headers, query: { 'type' => page_type })
|
|
35
|
-
.to_return(status: '200',
|
|
36
|
-
headers: { content_type: 'application/json; charset=utf-8' },
|
|
37
|
-
body: response.to_json)
|
|
38
|
-
|
|
39
|
-
expect(subject.pages(type: page_type)).to eq response
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
context 'not already authenticated' do
|
|
44
|
-
before :each do
|
|
45
|
-
expect(subject).to receive(:authenticate!) do
|
|
46
|
-
allow(subject).to receive(:ens_auth_key).and_return(ens_auth_key)
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
include_examples 'list pages'
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
context 'already authenticated' do
|
|
54
|
-
before :each do
|
|
55
|
-
allow(subject).to receive(:ens_auth_key).and_return(ens_auth_key)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
include_examples 'list pages'
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
describe '#process_page_request' do
|
|
63
|
-
let(:page_id) { 234 }
|
|
64
|
-
let(:page_req_url) { "https://#{EngagingNetworksRest::Client::ENS_DOMAIN}/ens/service/page/#{page_id}/process" }
|
|
65
|
-
let(:email) { Faker::Internet.email }
|
|
66
|
-
let(:supporter_hash) do
|
|
67
|
-
{ 'firstName' => 'Joe', 'lastName' => 'Smith', 'emailAddress' => email, 'customField1' => 'foo' }
|
|
68
|
-
end
|
|
69
|
-
let(:response) do
|
|
70
|
-
{ 'id' => '1234567', 'status' => 'SUCCESS', 'supporterEmailAddress' => email, 'supporterId' => '98765' }
|
|
71
|
-
end
|
|
72
|
-
let(:failure_response) { { 'status' => 'ERROR', 'message' => 'Something went wrong' } }
|
|
73
|
-
|
|
74
|
-
shared_examples_for 'process page request' do
|
|
75
|
-
it 'should send correct body for supporter and generic data' do
|
|
76
|
-
stub_request(:post, page_req_url)
|
|
77
|
-
.with(body: { 'txn1' => 'foo', 'txn2' => 'bar', 'suppressAutoResponder' => true,
|
|
78
|
-
supporter: { 'lastName' => 'Smith', 'emailAddress' => email } }.to_json,
|
|
79
|
-
headers: standard_headers)
|
|
80
|
-
.to_return(status: '200',
|
|
81
|
-
headers: { content_type: 'application/json; charset=utf-8' },
|
|
82
|
-
body: response.to_json)
|
|
83
|
-
|
|
84
|
-
subject.process_page_request(page_id: page_id,
|
|
85
|
-
generic_data: { 'txn1' => 'foo',
|
|
86
|
-
'txn2' => 'bar',
|
|
87
|
-
'suppressAutoResponder' => true },
|
|
88
|
-
supporter_data: { 'lastName' => 'Smith', 'emailAddress' => email })
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
it 'should process the page request and return its ID' do
|
|
92
|
-
stub_request(:post, page_req_url)
|
|
93
|
-
.with(body: { supporter: supporter_hash }.to_json, headers: standard_headers)
|
|
94
|
-
.to_return(status: '200',
|
|
95
|
-
headers: { content_type: 'application/json; charset=utf-8' },
|
|
96
|
-
body: response.to_json)
|
|
97
|
-
|
|
98
|
-
result = subject.process_page_request(page_id: page_id, supporter_data: supporter_hash)
|
|
99
|
-
|
|
100
|
-
expect(result['id']).to eq '1234567'
|
|
101
|
-
expect(result['supporterId']).to eq '98765'
|
|
102
|
-
expect(result['supporterEmailAddress']).to eq email
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
it 'should raise if response status is not SUCCESS' do
|
|
106
|
-
stub_request(:post, page_req_url)
|
|
107
|
-
.with(body: { supporter: supporter_hash }.to_json, headers: standard_headers)
|
|
108
|
-
.to_return(status: '200',
|
|
109
|
-
headers: { content_type: 'application/json; charset=utf-8' },
|
|
110
|
-
body: failure_response.to_json)
|
|
111
|
-
|
|
112
|
-
expect do
|
|
113
|
-
subject.process_page_request(page_id: page_id,
|
|
114
|
-
supporter_data: supporter_hash)
|
|
115
|
-
end.to raise_error(RuntimeError, /Unexpected 'status' value on response.*Something went wrong/)
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
context 'not already authenticated' do
|
|
120
|
-
before :each do
|
|
121
|
-
expect(subject).to receive(:authenticate!) do
|
|
122
|
-
allow(subject).to receive(:ens_auth_key).and_return(ens_auth_key)
|
|
123
|
-
end
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
include_examples 'process page request'
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
context 'already authenticated' do
|
|
130
|
-
before :each do
|
|
131
|
-
allow(subject).to receive(:ens_auth_key).and_return(ens_auth_key)
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
include_examples 'process page request'
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
end
|
data/spec/client_spec.rb
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'spec_helper'
|
|
4
|
-
|
|
5
|
-
describe EngagingNetworksRest::Client do
|
|
6
|
-
let(:api_key) { 'abc123' }
|
|
7
|
-
let(:content_type_header) { { 'Content-Type' => 'application/json' } }
|
|
8
|
-
|
|
9
|
-
subject { EngagingNetworksRest::Client.new(api_key: api_key) }
|
|
10
|
-
|
|
11
|
-
describe '#authenticate!' do
|
|
12
|
-
let(:auth_key) { '75491e42-99dc-45ce-b637-a681bede875c' }
|
|
13
|
-
let(:auth_key_body) { "{\"ens-auth-token\":\"#{auth_key}\",\"expires\":3600000}" }
|
|
14
|
-
|
|
15
|
-
before :each do
|
|
16
|
-
stub_request(:post, auth_url)
|
|
17
|
-
.with(body: api_key, headers: content_type_header)
|
|
18
|
-
.to_return(body: auth_key_body, headers: content_type_header)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
context 'with no host specified' do
|
|
22
|
-
let(:auth_url) { "https://#{EngagingNetworksRest::Client::ENS_DOMAIN}/ens/service/authenticate" }
|
|
23
|
-
|
|
24
|
-
it 'should set the ens_auth_key on the client' do
|
|
25
|
-
subject.authenticate!
|
|
26
|
-
|
|
27
|
-
expect(subject.ens_auth_key).to eq auth_key
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
context 'with a host specified' do
|
|
32
|
-
let(:host) { 'example.com' }
|
|
33
|
-
let(:auth_url) { "https://#{host}/ens/service/authenticate" }
|
|
34
|
-
|
|
35
|
-
subject { EngagingNetworksRest::Client.new(api_key: api_key, host: host) }
|
|
36
|
-
|
|
37
|
-
it 'should set the ens_auth_key on the client' do
|
|
38
|
-
subject.authenticate!
|
|
39
|
-
|
|
40
|
-
expect(subject.ens_auth_key).to eq auth_key
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
data/spec/spec_helper.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'rspec'
|
|
4
|
-
require 'webmock/rspec'
|
|
5
|
-
require 'faker'
|
|
6
|
-
|
|
7
|
-
$LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
|
|
8
|
-
|
|
9
|
-
require 'engaging_networks_rest'
|
|
10
|
-
|
|
11
|
-
RSpec.configure do |config|
|
|
12
|
-
config.include WebMock::API
|
|
13
|
-
|
|
14
|
-
config.before :each do
|
|
15
|
-
WebMock.reset!
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
config.after :each do
|
|
19
|
-
WebMock.reset!
|
|
20
|
-
end
|
|
21
|
-
end
|