engaging-networks-rest 0.7.0 → 1.1.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 +4 -14
- data/.gitignore +53 -0
- data/.ruby-version +1 -1
- data/CHANGELOG.md +19 -0
- data/Gemfile +2 -14
- data/README.md +5 -0
- data/Rakefile +2 -47
- data/VERSION +1 -1
- data/engaging-networks-rest.gemspec +32 -71
- data/lib/engaging_networks_rest/client.rb +4 -8
- data/lib/engaging_networks_rest/response/raise_error.rb +1 -1
- data/lib/engaging_networks_rest.rb +2 -2
- metadata +61 -70
- 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: d1d6fbc50fe43b052caca94e09d488d10d8d609aefed622f66e08ea1ed717eaa
|
|
4
|
+
data.tar.gz: 286eeefc99531cd14d473d8397f8fd9e4d84acb5ed99e03304f3cefa9b98933d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 57eb66e2fa08f3e3c894b40ecaf750eb5fdc9f44e3194cdee7ae20432b3040d70036d96d102654e047f8101be4bbcf7fae3e2965a68a000f42aca97d746ec61d
|
|
7
|
+
data.tar.gz: 97c50701dd3872dfef2b3994a97c65ccab528db19cfad32e3c10250802cc4257c392108e8f327fa5b0d35e996adcedf929dd879202310426dcff1e47e0ef9e41
|
data/.github/workflows/ci.yml
CHANGED
|
@@ -4,32 +4,22 @@ on: [push]
|
|
|
4
4
|
jobs:
|
|
5
5
|
test:
|
|
6
6
|
runs-on: ubuntu-latest
|
|
7
|
-
|
|
8
7
|
strategy:
|
|
9
8
|
matrix:
|
|
10
|
-
ruby-version: ['
|
|
11
|
-
|
|
9
|
+
ruby-version: ['3.3', '3.4', '4.0']
|
|
12
10
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
11
|
+
- uses: actions/checkout@v4
|
|
14
12
|
- uses: ruby/setup-ruby@v1
|
|
15
13
|
with:
|
|
16
14
|
ruby-version: ${{ matrix.ruby-version }}
|
|
17
15
|
bundler-cache: true
|
|
18
|
-
- run: bundle install
|
|
19
16
|
- run: bundle exec rspec
|
|
20
|
-
|
|
21
17
|
rubocop:
|
|
22
18
|
runs-on: ubuntu-latest
|
|
23
|
-
|
|
24
|
-
strategy:
|
|
25
|
-
matrix:
|
|
26
|
-
ruby-version: ['2.7', '3.0', '3.1', '3.2']
|
|
27
|
-
|
|
28
19
|
steps:
|
|
29
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@v4
|
|
30
21
|
- uses: ruby/setup-ruby@v1
|
|
31
22
|
with:
|
|
32
|
-
ruby-version:
|
|
23
|
+
ruby-version: '4.0'
|
|
33
24
|
bundler-cache: true
|
|
34
|
-
- run: bundle install
|
|
35
25
|
- run: bundle exec rubocop
|
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
|
+
4.0.1
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [1.1.0] - 2026-02-11
|
|
4
|
+
|
|
5
|
+
### BREAKING CHANGES
|
|
6
|
+
- Now requires Faraday 2.x (previously supported Faraday 1.x)
|
|
7
|
+
- Dropped support for Ruby versions older than 3.3. Officially supported versions are Ruby 3.3, 3.4, and 4.0.
|
|
8
|
+
|
|
9
|
+
## [1.0.0] - 2023-10-17
|
|
10
|
+
|
|
11
|
+
### BREAKING CHANGES
|
|
12
|
+
- Drops support for ruby versions 2.7 and 3.0. Only ruby 3.1 or newer is now supported.
|
|
13
|
+
- `EngagingNetworksRest.new` and `EngagingNetworksRest::Client.new` now require the `host` parameter
|
|
14
|
+
|
|
15
|
+
### Development changes
|
|
16
|
+
- Removed juwelier. Dependencies are now managed only in the gemspec file.
|
|
17
|
+
- Replaced byebug with debug
|
|
18
|
+
- Upgraded required faker version to eliminate the need for pinning psych
|
|
19
|
+
|
|
1
20
|
## [0.7.0] - 2023-10-16
|
|
2
21
|
|
|
3
22
|
### 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/README.md
CHANGED
|
@@ -3,6 +3,11 @@ Client gem for the ENS API to Engaging Networks
|
|
|
3
3
|
|
|
4
4
|
[](https://github.com/controlshift/engaging-networks-rest/actions/workflows/ci.yml)
|
|
5
5
|
|
|
6
|
+
## Requirements
|
|
7
|
+
|
|
8
|
+
- Ruby 3.3, 3.4, or 4.0
|
|
9
|
+
- Faraday ~> 2.0
|
|
10
|
+
|
|
6
11
|
## Install
|
|
7
12
|
|
|
8
13
|
`gem install engaging-networks-rest`
|
data/Rakefile
CHANGED
|
@@ -1,53 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require '
|
|
4
|
-
require 'bundler'
|
|
5
|
-
begin
|
|
6
|
-
Bundler.setup(:default, :development)
|
|
7
|
-
rescue Bundler::BundlerError => e
|
|
8
|
-
warn e.message
|
|
9
|
-
warn 'Run `bundle install` to install missing gems'
|
|
10
|
-
exit e.status_code
|
|
11
|
-
end
|
|
12
|
-
require 'rake'
|
|
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
|
-
|
|
3
|
+
require 'bundler/gem_tasks'
|
|
29
4
|
require 'rspec/core/rake_task'
|
|
30
|
-
desc 'Run specs'
|
|
31
|
-
RSpec::Core::RakeTask.new do |t|
|
|
32
|
-
t.pattern = './spec/**/*_spec.rb' # don't need this, it's default.
|
|
33
|
-
t.rspec_opts = '--color'
|
|
34
|
-
end
|
|
35
5
|
|
|
36
|
-
|
|
37
|
-
task :simplecov do
|
|
38
|
-
ENV['COVERAGE'] = 'true'
|
|
39
|
-
Rake::Task['test'].execute
|
|
40
|
-
end
|
|
6
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
41
7
|
|
|
42
|
-
desc 'Default: run specs'
|
|
43
8
|
task default: :spec
|
|
44
|
-
|
|
45
|
-
require 'rdoc/task'
|
|
46
|
-
Rake::RDocTask.new do |rdoc|
|
|
47
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ''
|
|
48
|
-
|
|
49
|
-
rdoc.rdoc_dir = 'rdoc'
|
|
50
|
-
rdoc.title = "engaging-networks-rest #{version}"
|
|
51
|
-
rdoc.rdoc_files.include('README*')
|
|
52
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
53
|
-
end
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1.1.0
|
|
@@ -1,77 +1,38 @@
|
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
s.version = "0.7.0"
|
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
|
4
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
10
5
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
s.email = "grey@controlshiftlabs.com".freeze
|
|
17
|
-
s.extra_rdoc_files = [
|
|
18
|
-
"LICENSE",
|
|
19
|
-
"LICENSE.txt",
|
|
20
|
-
"README.md"
|
|
21
|
-
]
|
|
22
|
-
s.files = [
|
|
23
|
-
".github/workflows/ci.yml",
|
|
24
|
-
".rubocop.yml",
|
|
25
|
-
".ruby-gemset",
|
|
26
|
-
".ruby-version",
|
|
27
|
-
"CHANGELOG.md",
|
|
28
|
-
"Gemfile",
|
|
29
|
-
"LICENSE",
|
|
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
|
|
45
|
-
s.licenses = ["MIT".freeze]
|
|
46
|
-
s.rubygems_version = "3.1.6".freeze
|
|
47
|
-
s.summary = "Client gem for the ENS API to Engaging Networks".freeze
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = 'engaging-networks-rest'
|
|
8
|
+
spec.version = File.read(File.expand_path('VERSION', __dir__)).strip
|
|
9
|
+
spec.authors = ['Grey Moore', 'Owens Ehimen', 'Diego Marcet']
|
|
10
|
+
spec.email = ['talk@controlshiftlabs.com']
|
|
48
11
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
12
|
+
spec.summary = 'Client gem for the ENS API to Engaging Networks'
|
|
13
|
+
spec.description = 'Client gem for the ENS API to Engaging Networks'
|
|
14
|
+
spec.homepage = 'https://github.com/controlshift/engaging-networks-rest'
|
|
15
|
+
spec.license = 'MIT'
|
|
52
16
|
|
|
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"])
|
|
17
|
+
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
18
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
|
75
19
|
end
|
|
76
|
-
|
|
20
|
+
spec.require_paths = ['lib']
|
|
21
|
+
|
|
22
|
+
spec.required_ruby_version = ['>= 3.3', '< 5.0']
|
|
77
23
|
|
|
24
|
+
# Runtime dependencies
|
|
25
|
+
spec.add_runtime_dependency 'faraday', '~> 2.0'
|
|
26
|
+
|
|
27
|
+
# Development dependencies
|
|
28
|
+
spec.add_development_dependency 'bundler', '>= 2.0', '< 5.0'
|
|
29
|
+
spec.add_development_dependency 'debug', '~> 1.0'
|
|
30
|
+
spec.add_development_dependency 'faker', '~> 3.0'
|
|
31
|
+
spec.add_development_dependency 'faraday-detailed_logger', '~> 2.0'
|
|
32
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
|
33
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
34
|
+
spec.add_development_dependency 'rubocop', '~> 1.0'
|
|
35
|
+
spec.add_development_dependency 'webmock', '~> 3.0'
|
|
36
|
+
|
|
37
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
38
|
+
end
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'faraday'
|
|
4
|
-
require 'faraday_middleware'
|
|
5
4
|
require 'engaging_networks_rest/client/pages'
|
|
6
5
|
require 'engaging_networks_rest/response/raise_error'
|
|
7
6
|
|
|
@@ -9,9 +8,7 @@ module EngagingNetworksRest
|
|
|
9
8
|
class Client
|
|
10
9
|
attr_reader :api_key, :connection, :ens_auth_key
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def initialize(api_key:, host: ENS_DOMAIN)
|
|
11
|
+
def initialize(api_key:, host:)
|
|
15
12
|
@api_key = api_key
|
|
16
13
|
|
|
17
14
|
@connection = Faraday.new(url: "https://#{host}") do |conn|
|
|
@@ -40,11 +37,11 @@ module EngagingNetworksRest
|
|
|
40
37
|
end
|
|
41
38
|
|
|
42
39
|
def get(path:, params: {})
|
|
43
|
-
request(method: :get, path
|
|
40
|
+
request(method: :get, path:, params:)
|
|
44
41
|
end
|
|
45
42
|
|
|
46
43
|
def post(path:, body: {})
|
|
47
|
-
request(method: :post, path
|
|
44
|
+
request(method: :post, path:, body:)
|
|
48
45
|
end
|
|
49
46
|
|
|
50
47
|
include EngagingNetworksRest::Client::Pages
|
|
@@ -55,11 +52,10 @@ module EngagingNetworksRest
|
|
|
55
52
|
authenticate! unless authenticated?
|
|
56
53
|
|
|
57
54
|
response = connection.send(method) do |req|
|
|
58
|
-
req.headers['Content-Type'] = 'application/json'
|
|
59
55
|
req.path = path
|
|
60
56
|
req.params = params
|
|
61
57
|
req.headers['ens-auth-token'] = ens_auth_key
|
|
62
|
-
req.body =
|
|
58
|
+
req.body = body unless body.empty?
|
|
63
59
|
end
|
|
64
60
|
|
|
65
61
|
response.body
|
|
@@ -8,7 +8,7 @@ module EngagingNetworksRest
|
|
|
8
8
|
|
|
9
9
|
class InternalError < StandardError; end
|
|
10
10
|
|
|
11
|
-
class RaiseError < Faraday::
|
|
11
|
+
class RaiseError < Faraday::Middleware
|
|
12
12
|
def on_complete(response)
|
|
13
13
|
status_code = response[:status].to_i
|
|
14
14
|
if (400...600).include? status_code
|
|
@@ -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,165 +1,157 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: engaging-networks-rest
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Grey Moore
|
|
8
|
-
|
|
8
|
+
- Owens Ehimen
|
|
9
|
+
- Diego Marcet
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
15
|
name: faraday
|
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
|
16
17
|
requirements:
|
|
17
|
-
- - "
|
|
18
|
+
- - "~>"
|
|
18
19
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
20
|
+
version: '2.0'
|
|
20
21
|
type: :runtime
|
|
21
22
|
prerelease: false
|
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
24
|
requirements:
|
|
24
|
-
- - "
|
|
25
|
+
- - "~>"
|
|
25
26
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
27
|
+
version: '2.0'
|
|
27
28
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
29
|
+
name: bundler
|
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
|
30
31
|
requirements:
|
|
31
32
|
- - ">="
|
|
32
33
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
34
|
-
|
|
35
|
-
prerelease: false
|
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
-
requirements:
|
|
38
|
-
- - ">="
|
|
39
|
-
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: faker
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - ">"
|
|
34
|
+
version: '2.0'
|
|
35
|
+
- - "<"
|
|
46
36
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
37
|
+
version: '5.0'
|
|
48
38
|
type: :development
|
|
49
39
|
prerelease: false
|
|
50
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
41
|
requirements:
|
|
52
|
-
- - "
|
|
42
|
+
- - ">="
|
|
43
|
+
- !ruby/object:Gem::Version
|
|
44
|
+
version: '2.0'
|
|
45
|
+
- - "<"
|
|
53
46
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
47
|
+
version: '5.0'
|
|
55
48
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
49
|
+
name: debug
|
|
57
50
|
requirement: !ruby/object:Gem::Requirement
|
|
58
51
|
requirements:
|
|
59
|
-
- -
|
|
52
|
+
- - "~>"
|
|
60
53
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
54
|
+
version: '1.0'
|
|
62
55
|
type: :development
|
|
63
56
|
prerelease: false
|
|
64
57
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
58
|
requirements:
|
|
66
|
-
- -
|
|
59
|
+
- - "~>"
|
|
67
60
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
61
|
+
version: '1.0'
|
|
69
62
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
63
|
+
name: faker
|
|
71
64
|
requirement: !ruby/object:Gem::Requirement
|
|
72
65
|
requirements:
|
|
73
|
-
- - "
|
|
66
|
+
- - "~>"
|
|
74
67
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
68
|
+
version: '3.0'
|
|
76
69
|
type: :development
|
|
77
70
|
prerelease: false
|
|
78
71
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
72
|
requirements:
|
|
80
|
-
- - "
|
|
73
|
+
- - "~>"
|
|
81
74
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
75
|
+
version: '3.0'
|
|
83
76
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
77
|
+
name: faraday-detailed_logger
|
|
85
78
|
requirement: !ruby/object:Gem::Requirement
|
|
86
79
|
requirements:
|
|
87
|
-
- - "
|
|
80
|
+
- - "~>"
|
|
88
81
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0'
|
|
82
|
+
version: '2.0'
|
|
90
83
|
type: :development
|
|
91
84
|
prerelease: false
|
|
92
85
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
86
|
requirements:
|
|
94
|
-
- - "
|
|
87
|
+
- - "~>"
|
|
95
88
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0'
|
|
89
|
+
version: '2.0'
|
|
97
90
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
91
|
+
name: rake
|
|
99
92
|
requirement: !ruby/object:Gem::Requirement
|
|
100
93
|
requirements:
|
|
101
|
-
- - "
|
|
94
|
+
- - "~>"
|
|
102
95
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
96
|
+
version: '13.0'
|
|
104
97
|
type: :development
|
|
105
98
|
prerelease: false
|
|
106
99
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
100
|
requirements:
|
|
108
|
-
- - "
|
|
101
|
+
- - "~>"
|
|
109
102
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '
|
|
103
|
+
version: '13.0'
|
|
111
104
|
- !ruby/object:Gem::Dependency
|
|
112
105
|
name: rspec
|
|
113
106
|
requirement: !ruby/object:Gem::Requirement
|
|
114
107
|
requirements:
|
|
115
|
-
- - "
|
|
108
|
+
- - "~>"
|
|
116
109
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '0'
|
|
110
|
+
version: '3.0'
|
|
118
111
|
type: :development
|
|
119
112
|
prerelease: false
|
|
120
113
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
114
|
requirements:
|
|
122
|
-
- - "
|
|
115
|
+
- - "~>"
|
|
123
116
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '0'
|
|
117
|
+
version: '3.0'
|
|
125
118
|
- !ruby/object:Gem::Dependency
|
|
126
119
|
name: rubocop
|
|
127
120
|
requirement: !ruby/object:Gem::Requirement
|
|
128
121
|
requirements:
|
|
129
|
-
- - "
|
|
122
|
+
- - "~>"
|
|
130
123
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '0'
|
|
124
|
+
version: '1.0'
|
|
132
125
|
type: :development
|
|
133
126
|
prerelease: false
|
|
134
127
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
128
|
requirements:
|
|
136
|
-
- - "
|
|
129
|
+
- - "~>"
|
|
137
130
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '0'
|
|
131
|
+
version: '1.0'
|
|
139
132
|
- !ruby/object:Gem::Dependency
|
|
140
133
|
name: webmock
|
|
141
134
|
requirement: !ruby/object:Gem::Requirement
|
|
142
135
|
requirements:
|
|
143
|
-
- - "
|
|
136
|
+
- - "~>"
|
|
144
137
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: '3.
|
|
138
|
+
version: '3.0'
|
|
146
139
|
type: :development
|
|
147
140
|
prerelease: false
|
|
148
141
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
142
|
requirements:
|
|
150
|
-
- - "
|
|
143
|
+
- - "~>"
|
|
151
144
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: '3.
|
|
145
|
+
version: '3.0'
|
|
153
146
|
description: Client gem for the ENS API to Engaging Networks
|
|
154
|
-
email:
|
|
147
|
+
email:
|
|
148
|
+
- talk@controlshiftlabs.com
|
|
155
149
|
executables: []
|
|
156
150
|
extensions: []
|
|
157
|
-
extra_rdoc_files:
|
|
158
|
-
- LICENSE
|
|
159
|
-
- LICENSE.txt
|
|
160
|
-
- README.md
|
|
151
|
+
extra_rdoc_files: []
|
|
161
152
|
files:
|
|
162
153
|
- ".github/workflows/ci.yml"
|
|
154
|
+
- ".gitignore"
|
|
163
155
|
- ".rubocop.yml"
|
|
164
156
|
- ".ruby-gemset"
|
|
165
157
|
- ".ruby-version"
|
|
@@ -176,14 +168,11 @@ files:
|
|
|
176
168
|
- lib/engaging_networks_rest/client.rb
|
|
177
169
|
- lib/engaging_networks_rest/client/pages.rb
|
|
178
170
|
- 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
|
|
171
|
+
homepage: https://github.com/controlshift/engaging-networks-rest
|
|
183
172
|
licenses:
|
|
184
173
|
- MIT
|
|
185
|
-
metadata:
|
|
186
|
-
|
|
174
|
+
metadata:
|
|
175
|
+
rubygems_mfa_required: 'true'
|
|
187
176
|
rdoc_options: []
|
|
188
177
|
require_paths:
|
|
189
178
|
- lib
|
|
@@ -191,15 +180,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
191
180
|
requirements:
|
|
192
181
|
- - ">="
|
|
193
182
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: '
|
|
183
|
+
version: '3.3'
|
|
184
|
+
- - "<"
|
|
185
|
+
- !ruby/object:Gem::Version
|
|
186
|
+
version: '5.0'
|
|
195
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
196
188
|
requirements:
|
|
197
189
|
- - ">="
|
|
198
190
|
- !ruby/object:Gem::Version
|
|
199
191
|
version: '0'
|
|
200
192
|
requirements: []
|
|
201
|
-
rubygems_version:
|
|
202
|
-
signing_key:
|
|
193
|
+
rubygems_version: 4.0.3
|
|
203
194
|
specification_version: 4
|
|
204
195
|
summary: Client gem for the ENS API to Engaging Networks
|
|
205
196
|
test_files: []
|
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
|