customerx_tracking 1.0.0 → 2.2.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/lib/customerx_tracking/base.rb +24 -0
- data/lib/customerx_tracking/requestor.rb +22 -0
- data/lib/customerx_tracking/tracker.rb +7 -0
- data/lib/customerx_tracking/version.rb +1 -1
- data/lib/customerx_tracking.rb +38 -4
- metadata +14 -19
- data/lib/customerx_tracking/client.rb +0 -32
- data/lib/customerx_tracking/configuration.rb +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9b3ae9f0cfcbe45349c526e4a297800dc868d6ae707ad0731df6f51f579fa5e
|
4
|
+
data.tar.gz: 8b18d6856d5f4fea1ba7ba4557046ac0a273d4046e8e217b4b42d3ce8a627d66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dfc1a8a3cdee7fb6cf70f540effa5fb8c5060bbae48fb657180955680ad97e827d3e21a64030baf3132605772c1c2f9ef8b8eafb23bf674e913744d9b8d35cc
|
7
|
+
data.tar.gz: 274f9f3dcf1e1b5e35be9c1a952d4c48f22dc83733df4c4eb3869a17446d2d71b1b72500d5e2694c3c7cd443ec9f9b02614d8894be535fde4064e59a7fa31fee
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module CustomerxTracking
|
2
|
+
class Base
|
3
|
+
def connection
|
4
|
+
@connection ||= Faraday.new(faraday_options)
|
5
|
+
end
|
6
|
+
|
7
|
+
def authorizations_is_not_present?
|
8
|
+
::CustomerxTracking.credential.nil? || ::CustomerxTracking.key.nil?
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def faraday_options
|
14
|
+
{
|
15
|
+
headers: {
|
16
|
+
'Content-Type' => 'application/json',
|
17
|
+
'credential' => CustomerxTracking.credential,
|
18
|
+
'key'=> CustomerxTracking.key
|
19
|
+
},
|
20
|
+
url: ::CustomerxTracking.base_url
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module CustomerxTracking
|
2
|
+
class Requestor < Base
|
3
|
+
def initialize
|
4
|
+
super
|
5
|
+
raise 'credential and key should be set' if authorizations_is_not_present?
|
6
|
+
end
|
7
|
+
|
8
|
+
def request(meth, params = nil)
|
9
|
+
meth = meth.downcase
|
10
|
+
|
11
|
+
begin
|
12
|
+
response = connection.method(meth).call do |req|
|
13
|
+
(meth == :get ? (req.params = params) : (req.body = params.to_json)) if params
|
14
|
+
end
|
15
|
+
rescue StandardError => e
|
16
|
+
raise "it was not possible to carry out the request #{e}"
|
17
|
+
end
|
18
|
+
|
19
|
+
{ status: response.status, body: JSON.parse(response.body) }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/customerx_tracking.rb
CHANGED
@@ -1,7 +1,41 @@
|
|
1
|
-
|
1
|
+
module CustomerxTracking
|
2
|
+
@base_url = 'https://tracker.customerx.com.br'
|
2
3
|
|
3
|
-
|
4
|
+
def self.config
|
5
|
+
yield self
|
6
|
+
end
|
4
7
|
|
5
|
-
|
8
|
+
def self.base_url
|
9
|
+
@base_url
|
10
|
+
end
|
6
11
|
|
7
|
-
|
12
|
+
def self.base_url=(base_url)
|
13
|
+
@base_url = base_url
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.credential
|
17
|
+
@credential
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.credential=(credential)
|
21
|
+
@credential = credential
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.key
|
25
|
+
@key
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.key=(key)
|
29
|
+
@key = key
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
require 'faraday'
|
34
|
+
require 'json'
|
35
|
+
|
36
|
+
# Core
|
37
|
+
require 'customerx_tracking/base'
|
38
|
+
require 'customerx_tracking/requestor'
|
39
|
+
|
40
|
+
# Tracker
|
41
|
+
require 'customerx_tracking/tracker'
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: customerx_tracking
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ricardo Grassi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 2.0.0
|
19
|
+
version: '1.8'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 0.9.0
|
30
|
-
- - "<"
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: '1.8'
|
33
27
|
description: Ruby wrapper for the REST API at https://www.customerx.cx. Documentation
|
34
28
|
at https://www.customerx.cx/developers.
|
35
29
|
email:
|
@@ -39,16 +33,17 @@ extensions: []
|
|
39
33
|
extra_rdoc_files: []
|
40
34
|
files:
|
41
35
|
- lib/customerx_tracking.rb
|
42
|
-
- lib/customerx_tracking/
|
43
|
-
- lib/customerx_tracking/
|
36
|
+
- lib/customerx_tracking/base.rb
|
37
|
+
- lib/customerx_tracking/requestor.rb
|
38
|
+
- lib/customerx_tracking/tracker.rb
|
44
39
|
- lib/customerx_tracking/version.rb
|
45
|
-
homepage: https://
|
40
|
+
homepage: https://github.com/CustomerX-CX/customerx_tracking_client_rb
|
46
41
|
licenses:
|
47
42
|
- MIT
|
48
43
|
metadata:
|
49
44
|
bug_tracker_uri: https://github.com/CustomerX-CX/customerx_tracking_client_rb/issues
|
50
|
-
changelog_uri: https://github.com/CustomerX-CX/customerx_tracking_client_rb/CHANGELOG.md
|
51
|
-
|
45
|
+
changelog_uri: https://github.com/CustomerX-CX/customerx_tracking_client_rb/blob/master/CHANGELOG.md
|
46
|
+
releases_uri: https://github.com/CustomerX-CX/customerx_tracking_client_rb/releases/tag/2.2.0
|
52
47
|
post_install_message:
|
53
48
|
rdoc_options: []
|
54
49
|
require_paths:
|
@@ -57,14 +52,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
57
52
|
requirements:
|
58
53
|
- - ">="
|
59
54
|
- !ruby/object:Gem::Version
|
60
|
-
version: '2.
|
55
|
+
version: '2.5'
|
61
56
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
57
|
requirements:
|
63
58
|
- - ">="
|
64
59
|
- !ruby/object:Gem::Version
|
65
60
|
version: 1.3.6
|
66
61
|
requirements: []
|
67
|
-
rubygems_version: 3.2.
|
62
|
+
rubygems_version: 3.2.3
|
68
63
|
signing_key:
|
69
64
|
specification_version: 4
|
70
65
|
summary: CustomerX Tracking REST API Client
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require "faraday"
|
2
|
-
|
3
|
-
require "customerx_tracking/configuration"
|
4
|
-
|
5
|
-
module CustomerxTracking
|
6
|
-
class Client
|
7
|
-
# @return [Configuration] Config instance
|
8
|
-
attr_reader :config
|
9
|
-
|
10
|
-
# Creates a new {Client} instance and yields {#config}.
|
11
|
-
def initialize
|
12
|
-
raise ArgumentError, "block not given" unless block_given?
|
13
|
-
|
14
|
-
@config = CustomerxTracking::Configuration.new
|
15
|
-
yield config
|
16
|
-
end
|
17
|
-
|
18
|
-
# Send tracking of API Tracking CustomerX
|
19
|
-
def tracker(external_id_client:, type_tracking:, identifier:, email:, options: {})
|
20
|
-
Faraday.new.post do |req|
|
21
|
-
req.url "https://tracking.customerx.com.br/api/v1/trackings"
|
22
|
-
req.headers = @config.options[:headers]
|
23
|
-
req.body = {
|
24
|
-
external_id_client: external_id_client,
|
25
|
-
type_tracking: type_tracking,
|
26
|
-
identifier: identifier,
|
27
|
-
email: email
|
28
|
-
}.merge(options)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
module CustomerxTracking
|
2
|
-
# Holds the configuration options for the client and connection
|
3
|
-
class Configuration
|
4
|
-
# @return [String] The basic auth credential.
|
5
|
-
attr_accessor :credential
|
6
|
-
|
7
|
-
# @return [String] The basic auth key.
|
8
|
-
attr_accessor :key
|
9
|
-
|
10
|
-
# Sets accept and user_agent headers
|
11
|
-
#
|
12
|
-
# @return [Hash] Faraday-formatted hash of options.
|
13
|
-
def options
|
14
|
-
{
|
15
|
-
headers: {
|
16
|
-
accept: "application/json",
|
17
|
-
credential: @credential,
|
18
|
-
key: @key
|
19
|
-
}
|
20
|
-
}
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|