active_campaign 0.0.4 → 0.0.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/lib/active_campaign/connection.rb +2 -0
- data/lib/active_campaign/version.rb +1 -1
- data/lib/active_campaign.rb +1 -8
- data/lib/faraday/response/json_normalizer.rb +39 -0
- data/spec/client/lists_spec.rb +2 -2
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb45bc281708e6be460d3e33379cd2c74c26d737
|
4
|
+
data.tar.gz: 12b0835d724fd3e093e1ffd0cf78db46cbc03a8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5f30055cd574ede7437056b3dde2cca94043a45a06033e13af3f478e91bd42e47629be65bc62d298c4ceb42eaec1837f985e423e9a1f095bf2e4edc0f018517
|
7
|
+
data.tar.gz: 77b9c9106c0fd0bba33cb1eb626a293cf131d5d54d82be44d42a2ad7bcde54316222cc6aa48bb29c8cae4899852ed342a0960bd8bf504889f09eab4ac7e470e6
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'faraday_middleware'
|
2
2
|
require 'faraday/response/raise_active_campaign_error'
|
3
3
|
require 'faraday/response/body_logger'
|
4
|
+
require 'faraday/response/json_normalizer'
|
4
5
|
|
5
6
|
module ActiveCampaign
|
6
7
|
|
@@ -32,6 +33,7 @@ module ActiveCampaign
|
|
32
33
|
conn.use FaradayMiddleware::FollowRedirects
|
33
34
|
if api_output == 'json'
|
34
35
|
conn.response :mashify, content_type: /\bjson$/
|
36
|
+
conn.response :json_normalizer
|
35
37
|
conn.response :json, content_type: /\bjson$/
|
36
38
|
end
|
37
39
|
faraday_config_block.call(conn) if faraday_config_block
|
data/lib/active_campaign.rb
CHANGED
@@ -24,14 +24,7 @@ module ActiveCampaign
|
|
24
24
|
# Delegate to ActiveCampaign::Client.new
|
25
25
|
def method_missing(method, *args, &block)
|
26
26
|
return super unless new.respond_to?(method)
|
27
|
-
|
28
|
-
results = response.reject{|k,v| %w(result_code result_message result_output).include?(k) }
|
29
|
-
response.results = results.values
|
30
|
-
results.keys.each do |key|
|
31
|
-
response.delete(key)
|
32
|
-
end
|
33
|
-
|
34
|
-
response
|
27
|
+
new.send(method, *args, &block)
|
35
28
|
end
|
36
29
|
|
37
30
|
def respond_to?(method, include_private=false)
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'faraday/response'
|
3
|
+
|
4
|
+
module Faraday
|
5
|
+
class Response::JsonNormalizer < Response::Middleware
|
6
|
+
def initialize(app, logger = nil)
|
7
|
+
super(app)
|
8
|
+
end
|
9
|
+
|
10
|
+
def call(environment)
|
11
|
+
@app.call(environment).on_complete do |env|
|
12
|
+
if env[:body].is_a?(Hash)
|
13
|
+
env[:body] = normalize(env[:body])
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def normalize(response)
|
21
|
+
keys, values = keys_values(response)
|
22
|
+
response[:results] = values
|
23
|
+
keys.each do |key|
|
24
|
+
response.delete(key)
|
25
|
+
end
|
26
|
+
response
|
27
|
+
end
|
28
|
+
|
29
|
+
def keys_values(response)
|
30
|
+
results = results(response)
|
31
|
+
[results.keys, results.values]
|
32
|
+
end
|
33
|
+
|
34
|
+
def results(response)
|
35
|
+
response.reject{|k,v| %w(result_code result_message result_output).include?(k) }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
Faraday.register_middleware :response, json_normalizer: lambda { Faraday::Response::JsonNormalizer }
|
data/spec/client/lists_spec.rb
CHANGED
@@ -40,9 +40,9 @@ describe ActiveCampaign::Client::Lists do
|
|
40
40
|
# stub_get("list_view", name: "Swedish Players").
|
41
41
|
# to_return json_response("list_view.json")
|
42
42
|
|
43
|
-
|
43
|
+
lists = @client.list_list "ids" => 'all'
|
44
44
|
binding.pry
|
45
|
-
expect(
|
45
|
+
expect(lists.results[0].name).to eq "Swedish Players"
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_campaign
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikael Henriksson
|
@@ -123,6 +123,7 @@ files:
|
|
123
123
|
- lib/active_campaign/request.rb
|
124
124
|
- lib/active_campaign/version.rb
|
125
125
|
- lib/faraday/response/body_logger.rb
|
126
|
+
- lib/faraday/response/json_normalizer.rb
|
126
127
|
- lib/faraday/response/raise_active_campaign_error.rb
|
127
128
|
- spec/active_campaign_spec.rb
|
128
129
|
- spec/client/contacts_spec.rb
|