emailvision 2.1.9 → 2.1.10
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/api.rb +54 -19
- metadata +2 -2
data/lib/emailvision/api.rb
CHANGED
@@ -43,8 +43,13 @@ module Emailvision
|
|
43
43
|
# - True if the connection has been destroyed
|
44
44
|
# - False if the connection cannot be destroyed or has already been destroyed
|
45
45
|
def close_connection
|
46
|
-
|
47
|
-
|
46
|
+
if connected?
|
47
|
+
get.connect.close.call
|
48
|
+
else
|
49
|
+
return false
|
50
|
+
end
|
51
|
+
rescue Emailvision::Exception => e
|
52
|
+
ensure
|
48
53
|
invalidate_token!
|
49
54
|
not connected?
|
50
55
|
end
|
@@ -95,25 +100,55 @@ module Emailvision
|
|
95
100
|
# 3. Convert to xml
|
96
101
|
body_xml = Emailvision::Tools.to_xml_as_is body
|
97
102
|
|
98
|
-
# == Send request ==
|
99
|
-
|
100
|
-
response = self.class.send http_verb, uri, :query => parameters, :body => body_xml, :timeout => 30
|
101
|
-
|
102
|
-
# == Parse response ==
|
103
|
-
http_code = response.header.code
|
104
|
-
content = {}
|
103
|
+
# == Send request ==
|
104
|
+
retries = 2
|
105
105
|
begin
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
106
|
+
logger.send "#{uri} with query : #{parameters} and body : #{body}"
|
107
|
+
response = self.class.send http_verb, uri, :query => parameters, :body => body_xml, :timeout => 30
|
108
|
+
|
109
|
+
# == Parse response ==
|
110
|
+
http_code = response.header.code
|
111
|
+
content = {}
|
112
|
+
begin
|
113
|
+
content = Crack::XML.parse response.body
|
114
|
+
rescue MultiXml::ParseError => e
|
115
|
+
logger.send "#{uri} Error when parsing response body (#{e.to_s})"
|
116
|
+
end
|
117
|
+
logger.receive content.inspect
|
118
|
+
|
119
|
+
# Return response or raise an exception if request failed
|
120
|
+
if (http_code == "200") and (content and content["response"])
|
121
|
+
response = content["response"]["result"] || content["response"]
|
122
|
+
else
|
123
|
+
raise Emailvision::Exception.new "#{http_code} - #{content}"
|
124
|
+
end
|
125
|
+
|
126
|
+
return response
|
111
127
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
128
|
+
rescue Emailvision::Exception => e
|
129
|
+
if e.message =~ /Your session has expired/
|
130
|
+
self.close_connection
|
131
|
+
self.open_connection
|
132
|
+
if((retries -= 1) >= 0)
|
133
|
+
retry
|
134
|
+
else
|
135
|
+
raise e
|
136
|
+
end
|
137
|
+
else
|
138
|
+
raise e
|
139
|
+
end
|
140
|
+
rescue Errno::ECONNRESET => e
|
141
|
+
if((retries -= 1) >= 0)
|
142
|
+
retry
|
143
|
+
else
|
144
|
+
raise e
|
145
|
+
end
|
146
|
+
rescue Timeout::Error => e
|
147
|
+
if((retries -= 1) >= 0)
|
148
|
+
retry
|
149
|
+
else
|
150
|
+
raise e
|
151
|
+
end
|
117
152
|
end
|
118
153
|
end
|
119
154
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|