nitroapi 0.0.8 → 0.0.9
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/nitro_api.rb +32 -7
- data/lib/nitro_api/version.rb +1 -1
- data/spec/nitro_api_spec.rb +36 -0
- metadata +2 -2
data/lib/nitro_api.rb
CHANGED
@@ -129,7 +129,11 @@ module NitroApi
|
|
129
129
|
end
|
130
130
|
|
131
131
|
def base_url
|
132
|
-
"#{self.protocol}://#{self.host}
|
132
|
+
"#{self.protocol}://#{self.host}#{base_url_path}"
|
133
|
+
end
|
134
|
+
|
135
|
+
def base_url_path
|
136
|
+
"/nitro/#{self.accepts}"
|
133
137
|
end
|
134
138
|
|
135
139
|
private
|
@@ -152,14 +156,35 @@ module NitroApi
|
|
152
156
|
end
|
153
157
|
|
154
158
|
def really_make_call params, method
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
159
|
+
data = nil
|
160
|
+
if :http == protocol or 'http' == protocol
|
161
|
+
if :get == method
|
162
|
+
request = "#{base_url}?#{to_query(params)}"
|
163
|
+
data = Net::HTTP.get(URI.parse(request))
|
164
|
+
elsif :post == method
|
165
|
+
data = Net::HTTP.post_form(URI.parse(base_url), params)
|
166
|
+
data = data.body
|
167
|
+
end
|
168
|
+
elsif :https == protocol or 'https' == protocol
|
169
|
+
http = Net::HTTP.new(host, 443)
|
170
|
+
http.use_ssl = true
|
171
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
172
|
+
|
173
|
+
if :get == method
|
174
|
+
request = "#{base_url_path}?#{to_query(params)}"
|
175
|
+
data = http.request(Net::HTTP::Get.new(request))
|
176
|
+
data = data.body
|
177
|
+
elsif :post == method
|
178
|
+
request = Net::HTTP::Post.new(base_url_path)
|
179
|
+
request.set_form_data(params)
|
180
|
+
data = http.request request
|
181
|
+
data = data.body
|
182
|
+
end
|
183
|
+
else
|
184
|
+
raise NitroError.new(1), "Unknown protocl: #{protocol.to_s}"
|
161
185
|
end
|
162
186
|
|
187
|
+
|
163
188
|
json = JSON.parse(data)
|
164
189
|
response = json["Nitro"]
|
165
190
|
error = response["Error"]
|
data/lib/nitro_api/version.rb
CHANGED
data/spec/nitro_api_spec.rb
CHANGED
@@ -60,6 +60,15 @@ describe NitroApi do
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
+
describe "#base_url_path" do
|
64
|
+
it "correclty users the configured accepts value" do
|
65
|
+
@nitro.base_url_path.should == '/nitro/json'
|
66
|
+
|
67
|
+
@nitro.accepts = 'xml'
|
68
|
+
@nitro.base_url_path.should == '/nitro/xml'
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
63
72
|
context "when authenticated" do
|
64
73
|
before do
|
65
74
|
@nitro.session = @session
|
@@ -467,8 +476,35 @@ describe NitroApi do
|
|
467
476
|
expect {@nitro.action_history 'action1'}.to raise_error(NitroApi::NitroError)
|
468
477
|
end
|
469
478
|
end
|
479
|
+
end
|
480
|
+
end
|
481
|
+
|
482
|
+
context "https connections" do
|
483
|
+
it "makes a single call successfully via https" do
|
484
|
+
@nitro.protocol = 'https'
|
485
|
+
mock_json = {"Nitro" => {"Login" => {"sessionKey" => @session}}}
|
486
|
+
url = @nitro.base_url + "?.*method=user.login.*"
|
487
|
+
stub_http_request(:get, Regexp.new(url)).
|
488
|
+
to_return(:body => mock_json.to_json)
|
470
489
|
|
490
|
+
@nitro.login
|
491
|
+
@nitro.session.should == @session
|
492
|
+
end
|
493
|
+
|
494
|
+
it "makes a batch call successfully via https" do
|
495
|
+
@nitro.protocol = 'https'
|
496
|
+
mock_json = {'Nitro' => {'Login' => {'sessionKey' => @session}, 'method' => 'user.login', 'res' => 'ok'}}
|
497
|
+
url = @nitro.base_url #+ "?.*method=batch.run.*"
|
498
|
+
stub_http_request(:get, Regexp.new(url)).
|
499
|
+
to_return(:body => mock_json.to_json)
|
500
|
+
|
501
|
+
@nitro.start_batch!
|
502
|
+
@nitro.login
|
503
|
+
@nitro.run_batch
|
504
|
+
|
505
|
+
@nitro.session.should == @session
|
471
506
|
end
|
472
507
|
end
|
508
|
+
|
473
509
|
end
|
474
510
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nitroapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-12-
|
13
|
+
date: 2012-12-09 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|