allin-sdk-ruby 2.0.0 → 4.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 CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZDRiYjJiZDZmZTg0Y2Q4MDc3ZWQ4ZmMxMDVkOTA0NDRmOTdiZGMxYw==
5
- data.tar.gz: !binary |-
6
- MTZlNzQ4NGYyNWIxZTM4NzRkODA1NDk4ZjNkNGZjMGJlYmI3ZGRlMQ==
2
+ SHA1:
3
+ metadata.gz: f9eb921da095233e16ab0ea28dbd9d9305cd9dab
4
+ data.tar.gz: c907cbe1453fabc69ae13e07e739d1968784f86f
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ODhkOTY2NjQyNjBkNzE0MmJkZmM0YWNkNzUwN2Y3YWFlZDdmNjI1ZjA5MGYz
10
- YjEwMWQxOWIxNjNmNDBhMGEwNmFlODY4YzdmZmJkNGJhOTMyMzVmOWI4ZjQx
11
- MWFiODA1ODk0MzIyYjczMGMwYTNkYzU2Y2Q3ZDI4NjlkMzQwMTg=
12
- data.tar.gz: !binary |-
13
- YjdmNWM2NjI2ZDliMjMxYzc4MGVlYjI2YmY0MDE2ZWFhODkwZjQ0NzhkYjlk
14
- OTAwNmZjMWVmMjE0MjEzOTRjYjAxOWM3N2I2YWE3N2EwMjM3MDJkZTgwMzk3
15
- YzJiNmNlYjk5MDEyZWE0MDlhZGNlY2Y5ODFjZmU5ZDZiMDA5OWY=
6
+ metadata.gz: 685614b96eed1a501ea994d46fe6fe22e50b3a66f61443b794cbe78dc1f95b890b92b34634b961ab5985b709cd216328c2d80ba2739961144fac3de163bd0dae
7
+ data.tar.gz: 87f86c7b137eb26aed334499e7456897400c32b964be1765efeb1ae6f482b1f31c45c27f7e453b50c637f6b38075aa3a6974af6af970378bf6eba51e09c2a8f2
data/Gemfile CHANGED
@@ -17,3 +17,4 @@ gem "httparty"
17
17
  gem 'configatron'
18
18
  gem "colorize"
19
19
  gem "pry"
20
+ gem "addressable"
data/Gemfile.lock CHANGED
@@ -78,6 +78,7 @@ PLATFORMS
78
78
  ruby
79
79
 
80
80
  DEPENDENCIES
81
+ addressable
81
82
  bundler (~> 1.0)
82
83
  colorize
83
84
  configatron
@@ -87,6 +88,3 @@ DEPENDENCIES
87
88
  rdoc (~> 3.12)
88
89
  rspec (~> 2.8.0)
89
90
  simplecov
90
-
91
- BUNDLED WITH
92
- 1.10.6
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.0
1
+ 4.0.0
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: allin-sdk-ruby 2.0.0 ruby lib
5
+ # stub: allin-sdk-ruby 4.0.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "allin-sdk-ruby"
9
- s.version = "2.0.0"
9
+ s.version = "4.0.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Renato Alves"]
14
- s.date = "2015-09-25"
14
+ s.date = "2015-09-30"
15
15
  s.description = "Ruby SDK for Allin integration"
16
16
  s.email = "renatodex@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -33,12 +33,14 @@ Gem::Specification.new do |s|
33
33
  "lib/allin-sdk-ruby/helpers/builder.rb",
34
34
  "lib/allin-sdk-ruby/json_api/facade.rb",
35
35
  "lib/allin-sdk-ruby/json_api/list_email.rb",
36
+ "lib/allin-sdk-ruby/json_api/optout.rb",
37
+ "lib/allin-sdk-ruby/json_api/token.rb",
36
38
  "spec/allin-sdk-ruby_spec.rb",
37
39
  "spec/spec_helper.rb"
38
40
  ]
39
41
  s.homepage = "http://github.com/renatodex/allin-sdk-ruby"
40
42
  s.licenses = ["MIT"]
41
- s.rubygems_version = "2.4.8"
43
+ s.rubygems_version = "2.4.2"
42
44
  s.summary = "Ruby SDK for Allin integration"
43
45
 
44
46
  if s.respond_to? :specification_version then
@@ -49,6 +51,7 @@ Gem::Specification.new do |s|
49
51
  s.add_runtime_dependency(%q<configatron>, [">= 0"])
50
52
  s.add_runtime_dependency(%q<colorize>, [">= 0"])
51
53
  s.add_runtime_dependency(%q<pry>, [">= 0"])
54
+ s.add_runtime_dependency(%q<addressable>, [">= 0"])
52
55
  s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
53
56
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
54
57
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
@@ -59,6 +62,7 @@ Gem::Specification.new do |s|
59
62
  s.add_dependency(%q<configatron>, [">= 0"])
60
63
  s.add_dependency(%q<colorize>, [">= 0"])
61
64
  s.add_dependency(%q<pry>, [">= 0"])
65
+ s.add_dependency(%q<addressable>, [">= 0"])
62
66
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
63
67
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
64
68
  s.add_dependency(%q<bundler>, ["~> 1.0"])
@@ -70,6 +74,7 @@ Gem::Specification.new do |s|
70
74
  s.add_dependency(%q<configatron>, [">= 0"])
71
75
  s.add_dependency(%q<colorize>, [">= 0"])
72
76
  s.add_dependency(%q<pry>, [">= 0"])
77
+ s.add_dependency(%q<addressable>, [">= 0"])
73
78
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
74
79
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
75
80
  s.add_dependency(%q<bundler>, ["~> 1.0"])
@@ -1,8 +1,11 @@
1
1
  require 'httparty'
2
2
  require 'configatron'
3
3
  require 'colorize'
4
+ require 'addressable/uri'
4
5
 
5
6
  require 'allin-sdk-ruby/helpers/builder'
6
7
  require 'allin-sdk-ruby/config/default'
7
8
  require "allin-sdk-ruby/json_api/facade"
9
+ require "allin-sdk-ruby/json_api/token"
8
10
  require "allin-sdk-ruby/json_api/list_email"
11
+ require "allin-sdk-ruby/json_api/optout"
@@ -1,6 +1,10 @@
1
1
  require 'configatron'
2
2
 
3
3
  configatron.allinsdk_api_uri = "http://painel02.allinmail.com.br"
4
- configatron.allinsdk_api_token = "seutoken"
4
+ configatron.allinsdk_api_login = "yourlogin"
5
+ configatron.allinsdk_api_password = "yourpassword"
5
6
  configatron.allinsdk_api_list_email_insert_method = "inserir_email_base"
6
7
  configatron.allinsdk_api_list_email_remove_method = "remover_email_base"
8
+ configatron.allinsdk_api_list_token_method = "get_token"
9
+ configatron.allinsdk_api_optout_insert_method = "inserir_email_optout"
10
+ configatron.allinsdk_api_optout_remove_method = "remover_email_optout"
@@ -4,7 +4,6 @@ module AllinSDK
4
4
  include ::HTTParty
5
5
  base_uri configatron.allinsdk_api_uri
6
6
  default_params ({
7
- :token => configatron.allinsdk_api_token,
8
7
  :output => "json"
9
8
  })
10
9
 
@@ -16,19 +15,40 @@ module AllinSDK
16
15
  end
17
16
  end
18
17
 
19
- def self.api_get(method, params={})
20
- puts "[GET] starting request to Allin at \##{method} with params: #{params}".light_blue
21
- result = self.send("get", "/allinapi?method=#{method}", params)
22
- puts "[GET] request response from backend: #{result}".green
18
+ def self.api_get(method, params={}, token_required=true)
19
+ query_values = params
20
+ if token_required
21
+ query_values.merge!({token: self.generate_token})
22
+ end
23
+
24
+ uri_params = ::Addressable::URI.new
25
+ uri_params.query_values = query_values
26
+
27
+ puts "[GET] <- starting request to Allin at \##{method} with params: #{params}".light_blue
28
+ result = self.send("get", "/allinapi/?method=#{method}&#{uri_params.query}", {})
29
+ puts "[GET] -> request response from backend: #{result}".green
23
30
  self.parse_response result.body
24
31
  end
25
32
 
26
- def self.api_post(method, params={})
27
- puts "[POST] starting request to Allin at \##{method} with params: #{params}".light_blue
28
- result = self.send("post", "/allinapi?method=#{method}", params)
29
- puts "[POST] request response from backend: #{result}".green
33
+ def self.api_post(method, body_params={}, query_params={})
34
+ options = {
35
+ :body => body_params,
36
+ :query => {token: self.generate_token}.merge(query_params),
37
+ :headers => {
38
+ 'Cache-Control' => 'no-cache'
39
+ }
40
+ }
41
+
42
+ puts "[POST] <- starting request to Allin at \##{method} with params: #{body_params}".light_blue
43
+ result = self.send("post", "/allinapi/?method=#{method}", options)
44
+ puts "[POST] -> request response from backend: #{result}".green
45
+
30
46
  self.parse_response result.body
31
47
  end
48
+
49
+ def self.generate_token
50
+ AllinSDK::JsonAPI::Token.retrieve
51
+ end
32
52
  end
33
53
  end
34
54
  end
@@ -4,11 +4,17 @@ module AllinSDK
4
4
  extend Helpers::Builder
5
5
 
6
6
  def self.insert(list, email, merge_data)
7
+ fields = self.build_fields({nm_email: email}.merge(merge_data))
8
+ values = self.build_values({nm_email: email}.merge(merge_data))
9
+
7
10
  AllinSDK::JsonAPI::Facade.api_post(self.insert_method_name, {
8
- "nm_lista" => list,
9
- "campos" => self.build_fields(merge_data),
10
- "valor" => self.build_values(merge_data)
11
+ "dados_email" => {
12
+ "nm_lista" => list,
13
+ "campos" => fields,
14
+ "valor" => values
15
+ }.to_json
11
16
  })
17
+
12
18
  end
13
19
 
14
20
  def self.remove(list, email)
@@ -0,0 +1,26 @@
1
+ module AllinSDK
2
+ module JsonAPI
3
+ class Optout
4
+ def self.insert(email)
5
+ result = AllinSDK::JsonAPI::Facade.api_get(self.optout_insert_method_name, {
6
+ email: email
7
+ })
8
+ end
9
+
10
+ def self.remove(email)
11
+ result = AllinSDK::JsonAPI::Facade.api_get(self.optout_remove_method_name, {
12
+ email: email
13
+ })
14
+ end
15
+
16
+ private
17
+ def self.optout_insert_method_name
18
+ configatron.allinsdk_api_optout_insert_method
19
+ end
20
+
21
+ def self.optout_remove_method_name
22
+ configatron.allinsdk_api_optout_remove_method
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module AllinSDK
2
+ module JsonAPI
3
+ class Token
4
+ def self.retrieve
5
+ result = AllinSDK::JsonAPI::Facade.api_get(self.token_method_name, {
6
+ username: self.username,
7
+ password: self.password
8
+ }, false)
9
+ result["token"]
10
+ end
11
+
12
+ private
13
+ def self.token_method_name
14
+ configatron.allinsdk_api_list_token_method
15
+ end
16
+
17
+ def self.username
18
+ configatron.allinsdk_api_login
19
+ end
20
+
21
+ def self.password
22
+ configatron.allinsdk_api_password
23
+ end
24
+ end
25
+ end
26
+ end
metadata CHANGED
@@ -1,139 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: allin-sdk-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Renato Alves
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-25 00:00:00.000000000 Z
11
+ date: 2015-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: configatron
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: colorize
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: addressable
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - ~>
87
+ - - "~>"
74
88
  - !ruby/object:Gem::Version
75
89
  version: 2.8.0
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - ~>
94
+ - - "~>"
81
95
  - !ruby/object:Gem::Version
82
96
  version: 2.8.0
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rdoc
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
- - - ~>
101
+ - - "~>"
88
102
  - !ruby/object:Gem::Version
89
103
  version: '3.12'
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
- - - ~>
108
+ - - "~>"
95
109
  - !ruby/object:Gem::Version
96
110
  version: '3.12'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: bundler
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
- - - ~>
115
+ - - "~>"
102
116
  - !ruby/object:Gem::Version
103
117
  version: '1.0'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
107
121
  requirements:
108
- - - ~>
122
+ - - "~>"
109
123
  - !ruby/object:Gem::Version
110
124
  version: '1.0'
111
125
  - !ruby/object:Gem::Dependency
112
126
  name: jeweler
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
- - - ~>
129
+ - - "~>"
116
130
  - !ruby/object:Gem::Version
117
131
  version: 2.0.1
118
132
  type: :development
119
133
  prerelease: false
120
134
  version_requirements: !ruby/object:Gem::Requirement
121
135
  requirements:
122
- - - ~>
136
+ - - "~>"
123
137
  - !ruby/object:Gem::Version
124
138
  version: 2.0.1
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: simplecov
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
- - - ! '>='
143
+ - - ">="
130
144
  - !ruby/object:Gem::Version
131
145
  version: '0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - ! '>='
150
+ - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
153
  description: Ruby SDK for Allin integration
@@ -144,8 +158,8 @@ extra_rdoc_files:
144
158
  - LICENSE.txt
145
159
  - README.rdoc
146
160
  files:
147
- - .document
148
- - .rspec
161
+ - ".document"
162
+ - ".rspec"
149
163
  - Gemfile
150
164
  - Gemfile.lock
151
165
  - LICENSE.txt
@@ -158,6 +172,8 @@ files:
158
172
  - lib/allin-sdk-ruby/helpers/builder.rb
159
173
  - lib/allin-sdk-ruby/json_api/facade.rb
160
174
  - lib/allin-sdk-ruby/json_api/list_email.rb
175
+ - lib/allin-sdk-ruby/json_api/optout.rb
176
+ - lib/allin-sdk-ruby/json_api/token.rb
161
177
  - spec/allin-sdk-ruby_spec.rb
162
178
  - spec/spec_helper.rb
163
179
  homepage: http://github.com/renatodex/allin-sdk-ruby
@@ -170,17 +186,17 @@ require_paths:
170
186
  - lib
171
187
  required_ruby_version: !ruby/object:Gem::Requirement
172
188
  requirements:
173
- - - ! '>='
189
+ - - ">="
174
190
  - !ruby/object:Gem::Version
175
191
  version: '0'
176
192
  required_rubygems_version: !ruby/object:Gem::Requirement
177
193
  requirements:
178
- - - ! '>='
194
+ - - ">="
179
195
  - !ruby/object:Gem::Version
180
196
  version: '0'
181
197
  requirements: []
182
198
  rubyforge_project:
183
- rubygems_version: 2.4.8
199
+ rubygems_version: 2.4.2
184
200
  signing_key:
185
201
  specification_version: 4
186
202
  summary: Ruby SDK for Allin integration