emailvision 2.1.20 → 2.1.21
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.
- data/lib/emailvision.rb +1 -0
- data/lib/emailvision/api.rb +36 -14
- data/lib/emailvision/exception.rb +8 -0
- data/lib/emailvision/logger.rb +7 -0
- data/lib/emailvision/relation.rb +10 -0
- data/lib/emailvision/tools.rb +24 -0
- data/lib/emailvision/version.rb +3 -0
- metadata +20 -8
- checksums.yaml +0 -15
data/lib/emailvision.rb
CHANGED
data/lib/emailvision/api.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
module Emailvision
|
2
|
+
|
3
|
+
# This is where the communication with the API is made.
|
4
|
+
#
|
2
5
|
class Api
|
3
6
|
include HTTParty
|
4
7
|
default_timeout 30
|
@@ -15,6 +18,11 @@ module Emailvision
|
|
15
18
|
end
|
16
19
|
attr_accessor *ATTRIBUTES
|
17
20
|
|
21
|
+
# Initialize
|
22
|
+
#
|
23
|
+
# @param [Hash] Instance attributes to assign
|
24
|
+
# @yield Freshly-created instance (optionnal)
|
25
|
+
#
|
18
26
|
def initialize(params = {})
|
19
27
|
yield(self) if block_given?
|
20
28
|
assign_attributes(params)
|
@@ -23,9 +31,9 @@ module Emailvision
|
|
23
31
|
# ----------------- BEGIN Pre-configured methods -----------------
|
24
32
|
|
25
33
|
# Login to Emailvision API
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
34
|
+
#
|
35
|
+
# @return [Boolean] true if the connection has been established.
|
36
|
+
#
|
29
37
|
def open_connection
|
30
38
|
return false if connected?
|
31
39
|
self.token = get.connect.open.call :login => @login, :password => @password, :key => @key
|
@@ -33,9 +41,9 @@ module Emailvision
|
|
33
41
|
end
|
34
42
|
|
35
43
|
# Logout from Emailvision API
|
36
|
-
#
|
37
|
-
#
|
38
|
-
#
|
44
|
+
#
|
45
|
+
# @return [Boolean] true if the connection has been destroyed
|
46
|
+
#
|
39
47
|
def close_connection
|
40
48
|
if connected?
|
41
49
|
get.connect.close.call
|
@@ -49,19 +57,27 @@ module Emailvision
|
|
49
57
|
end
|
50
58
|
|
51
59
|
# Check whether the connection has been established or not
|
60
|
+
#
|
61
|
+
# @return [Boolean] true if the connection has been establshed
|
62
|
+
#
|
52
63
|
def connected?
|
53
64
|
!token.nil?
|
54
65
|
end
|
55
66
|
|
67
|
+
# When a token is no longer valid, this method can be called.
|
68
|
+
# The #connected? method will return false
|
69
|
+
#
|
56
70
|
def invalidate_token!
|
57
71
|
self.token = nil
|
58
72
|
end
|
59
73
|
# ----------------- END Pre-configured methods -----------------
|
60
74
|
|
61
|
-
# Perform
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
75
|
+
# Perform an API call
|
76
|
+
#
|
77
|
+
# @param [:get, :post] HTTP verb to use for the API call
|
78
|
+
# @param [String] method to call on the API
|
79
|
+
# @param [Hash] request parameters (optionnal)
|
80
|
+
#
|
65
81
|
def call(http_verb, method, parameters = {})
|
66
82
|
params ||= {}
|
67
83
|
|
@@ -104,20 +120,26 @@ module Emailvision
|
|
104
120
|
end
|
105
121
|
end
|
106
122
|
|
107
|
-
# Set token
|
108
|
-
#
|
123
|
+
# Set a new token
|
124
|
+
#
|
125
|
+
# @param [String] new token
|
126
|
+
#
|
109
127
|
def token=(value)
|
110
128
|
@token = value
|
111
129
|
end
|
112
130
|
|
113
|
-
#
|
114
|
-
#
|
131
|
+
# Change API endpoint.
|
132
|
+
# This will close the connection to the current endpoint
|
133
|
+
#
|
134
|
+
# @param [String] new endpoint (apimember, apiccmd, apitransactional, ...)
|
135
|
+
#
|
115
136
|
def endpoint=(value)
|
116
137
|
close_connection
|
117
138
|
@endpoint = value
|
118
139
|
end
|
119
140
|
|
120
141
|
# Base uri
|
142
|
+
#
|
121
143
|
def base_uri
|
122
144
|
"http://#{server_name}/#{endpoint}/services/rest/"
|
123
145
|
end
|
@@ -1,8 +1,16 @@
|
|
1
1
|
module Emailvision
|
2
|
+
|
3
|
+
# API default exception
|
4
|
+
#
|
2
5
|
class Exception < ::Exception
|
3
6
|
|
4
7
|
attr_accessor :http_status, :error
|
5
8
|
|
9
|
+
# Initialize
|
10
|
+
#
|
11
|
+
# @param [Integer] HTTP status code
|
12
|
+
# @param [String] Error message
|
13
|
+
#
|
6
14
|
def initializer(http_status, error)
|
7
15
|
self.http_status = http_status
|
8
16
|
self.error = error
|
data/lib/emailvision/logger.rb
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
module Emailvision
|
2
|
+
|
3
|
+
# API logger class
|
4
|
+
#
|
2
5
|
class Logger < ::Logger
|
3
6
|
|
4
7
|
attr_accessor :debug
|
@@ -9,11 +12,15 @@ module Emailvision
|
|
9
12
|
end
|
10
13
|
|
11
14
|
# Log a message sent to emailvision
|
15
|
+
#
|
16
|
+
# @param [String] message
|
12
17
|
def send(message)
|
13
18
|
info("[Emailvision] Send -> #{message}")
|
14
19
|
end
|
15
20
|
|
16
21
|
# Log a message received from emailvision
|
22
|
+
#
|
23
|
+
# @param [String] message
|
17
24
|
def receive(message)
|
18
25
|
info("[Emailvision] Receive -> #{message}")
|
19
26
|
end
|
data/lib/emailvision/relation.rb
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
module Emailvision
|
2
|
+
|
3
|
+
# Relation is used for API-chained call
|
4
|
+
#
|
5
|
+
# e.g. emv.get.campaign.last(:limit => 5).call
|
6
|
+
#
|
2
7
|
class Relation
|
3
8
|
|
4
9
|
def initialize(instance, http_verb)
|
@@ -8,6 +13,11 @@ module Emailvision
|
|
8
13
|
@options = {}
|
9
14
|
end
|
10
15
|
|
16
|
+
# Trigger the API call
|
17
|
+
#
|
18
|
+
# @param [Object] parameters
|
19
|
+
# @return [Object] data returned from Emailvision
|
20
|
+
#
|
11
21
|
def call(*args)
|
12
22
|
@options.merge! extract_args(args)
|
13
23
|
@instance.call @http_verb, @uri.join('/'), @options
|
data/lib/emailvision/tools.rb
CHANGED
@@ -1,6 +1,15 @@
|
|
1
1
|
module Emailvision
|
2
|
+
|
3
|
+
# Toolbox for the API
|
4
|
+
# This class is mainly used to convert data
|
5
|
+
#
|
2
6
|
class Tools
|
3
7
|
|
8
|
+
# Sanitize values from a Hash
|
9
|
+
#
|
10
|
+
# @param [Hash] hash to sanitize
|
11
|
+
# @return [Hash] sanitized hash
|
12
|
+
#
|
4
13
|
def self.sanitize_parameters(parameters)
|
5
14
|
r_each(parameters) do |value|
|
6
15
|
if value.kind_of?(DateTime) or value.kind_of?(Time)
|
@@ -21,6 +30,11 @@ module Emailvision
|
|
21
30
|
date.strftime('%d/%m/%Y')
|
22
31
|
end
|
23
32
|
|
33
|
+
# Convert hash keys to camel case
|
34
|
+
#
|
35
|
+
# @param [Object] structure to camelize
|
36
|
+
# @return [Object] structure with keys camelized (if any)
|
37
|
+
#
|
24
38
|
def self.r_camelize(obj)
|
25
39
|
if obj.is_a?(Hash)
|
26
40
|
new_obj = {}
|
@@ -39,6 +53,11 @@ module Emailvision
|
|
39
53
|
end
|
40
54
|
end
|
41
55
|
|
56
|
+
# Convert data structure to XML
|
57
|
+
#
|
58
|
+
# @param [Object] structure to convert
|
59
|
+
# @return [String] XML structure
|
60
|
+
#
|
42
61
|
def self.to_xml_as_is(obj)
|
43
62
|
obj_xml = ""
|
44
63
|
|
@@ -51,6 +70,11 @@ module Emailvision
|
|
51
70
|
obj_xml
|
52
71
|
end
|
53
72
|
|
73
|
+
# Iterate throught a Hash recursively
|
74
|
+
#
|
75
|
+
# @param [Hash] structure to iterate
|
76
|
+
# @yield called for each data
|
77
|
+
#
|
54
78
|
def self.r_each(hash, &block)
|
55
79
|
return enum_for(:dfs, hash) unless block
|
56
80
|
|
metadata
CHANGED
@@ -1,32 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: emailvision
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.21
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Bastien Gysler
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-16 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: httparty
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
21
|
+
version: 0.12.0
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
29
|
+
version: 0.12.0
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: crack
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: builder
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - ~>
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,13 +54,15 @@ dependencies:
|
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - ~>
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: 3.1.0
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
63
|
+
name: activesupport
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -65,6 +73,7 @@ dependencies:
|
|
65
73
|
type: :runtime
|
66
74
|
prerelease: false
|
67
75
|
version_requirements: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
68
77
|
requirements:
|
69
78
|
- - ! '>='
|
70
79
|
- !ruby/object:Gem::Version
|
@@ -85,30 +94,33 @@ files:
|
|
85
94
|
- lib/emailvision/railtie.rb
|
86
95
|
- lib/emailvision/relation.rb
|
87
96
|
- lib/emailvision/tools.rb
|
97
|
+
- lib/emailvision/version.rb
|
88
98
|
- lib/emailvision.rb
|
89
99
|
- lib/generators/install.rb
|
90
100
|
- lib/generators/templates/emailvision.yml
|
91
101
|
homepage: http://github.com/basgys/emailvision
|
92
102
|
licenses: []
|
93
|
-
metadata: {}
|
94
103
|
post_install_message:
|
95
104
|
rdoc_options: []
|
96
105
|
require_paths:
|
97
106
|
- lib
|
98
107
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
99
109
|
requirements:
|
100
110
|
- - ! '>='
|
101
111
|
- !ruby/object:Gem::Version
|
102
112
|
version: '0'
|
103
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
104
115
|
requirements:
|
105
116
|
- - ! '>='
|
106
117
|
- !ruby/object:Gem::Version
|
107
118
|
version: '0'
|
108
119
|
requirements: []
|
109
120
|
rubyforge_project:
|
110
|
-
rubygems_version:
|
121
|
+
rubygems_version: 1.8.23
|
111
122
|
signing_key:
|
112
|
-
specification_version:
|
123
|
+
specification_version: 3
|
113
124
|
summary: Emailvision
|
114
125
|
test_files: []
|
126
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
ZjNmNWYyZDRlZjNkZWFhYmIwOGM5NmJkOThiN2EwNzUwMmNkM2FmYg==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
ODJhYzFlMDU4YTBkN2VmZTkwNDhkNmU3N2JlNmIyZTIyNmMzMTg1OQ==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MGI4ZTQ4NzViZmE1ZjQ3MTIyNGRiZjNmMWJiNjU4MzJiMWQ1MzgzYmFkMDI1
|
10
|
-
MjNkODk2MGMxMWY5ZmU1MzUwOWFhYjQ3NTdmYzE3ODRiNGI1NWI2YWI2Nzk5
|
11
|
-
YzQ1YzMyMzBhYjM3YmFlOTVmMDdkYmJkZTgyZGYzZWFjOTNiMDY=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzI1MDEwNDYxZDQxMTg5MTJhZWE2NTI2MjE1ZjVmMTE3YTlmZWRlYWM4ZmM2
|
14
|
-
M2IzNGExNDIyMDY5NjNjZDZlZjg3Nzg2ODI1NzJhOTFlNTFkMjVjYWFlMTAz
|
15
|
-
MWNhYzVkN2IwZGQ3NGI4YmEzNDk4NTdkMTA4MjM4ZjAxMDQxY2I=
|