wialon_api 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b3696f2c16f7126835bd10c13a5f533b72b07a00
4
- data.tar.gz: 84af7147d2315e1d17c3b4ce349c7383aa90d5b7
3
+ metadata.gz: 837b4373fd4679f2e4ff1836a4a0e5539a13e938
4
+ data.tar.gz: 2546fbb21ba7c2485bcec73cafebcccbff59e742
5
5
  SHA512:
6
- metadata.gz: f11002df1f7a104c1427c03ee96367e3951b89a82a1595f7ed99ecc8f04bd016cc296de8644c39b769475598d9d608d3b954281e0f8c491d1ee8a0064a44fc81
7
- data.tar.gz: f71918769c4d9e04f5453133bad5d2c7f8bfda94a1c16b125c9f9e03b49f775f470bffa08d88e33ebb314f79a19b689877cac6169cd65569d98d87b636b995a3
6
+ metadata.gz: 0428f8f6cff58ff21817135e088a0270bbeec42c153f956fd99526c1d6bab64337a1c94e0b77d46c74556a8b5daad2fcaceb380b9251244ecfbc9b6c2aa5b4c2
7
+ data.tar.gz: b599c28dd28a925035335516c51cd28d5f6ff0aac93de75c224cb6ac210571137dbd20b7818bfda5bd550c400732ee85d253e3474ae3f57f38d87851ceebd64f
data/README.md CHANGED
@@ -143,9 +143,14 @@ WialonApi.configure do |config|
143
143
 
144
144
  # Wialon server host
145
145
  # config.wialon_host = 'https://hst-api.wialon.com/wialon/ajax.html'
146
+
147
+ # Wialon server edition: :hosting, :local, :pro
148
+ # config.wialon_edition = :hosting
146
149
  end
147
150
  ```
148
151
 
152
+ Note that `Wialon Pro` edition uses different parameters in requests, e.g. `ssid` vs `eid` as the session identifier. `WialonApi` gem handles these differences automatically.
153
+
149
154
  `Net::HTTP` is used by default for a HTTP requests. One can choose any [other adapter](https://github.com/technoweenie/faraday/blob/master/lib/faraday/adapter.rb) suported by `faraday`.
150
155
 
151
156
  Options for faraday connection (e.g. proxy settings or SSL certificates path) could be set through `faraday_options` when configuring `wialon_api`
@@ -27,4 +27,7 @@ WialonApi.configure do |config|
27
27
 
28
28
  # Wialon server host
29
29
  # config.wialon_host = 'https://hst-api.wialon.com/wialon/ajax.html'
30
+
31
+ # Wialon server edition: :hosting, :local, :pro
32
+ # config.wialon_edition = :hosting
30
33
  end
@@ -3,7 +3,7 @@ require 'json'
3
3
  module WialonApi
4
4
  module Api
5
5
  def self.call(service_name, args = {}, sid = nil)
6
- parameters = { svc: service_name, params: args.to_json, ssid: sid }
6
+ parameters = { svc: service_name, params: args.to_json, WialonApi.wialon_session_identifier => sid }
7
7
  connection(url: WialonApi.wialon_host).send(WialonApi.http_verb, nil, parameters).body
8
8
  end
9
9
 
@@ -3,11 +3,7 @@ module WialonApi
3
3
  def authorize(user, password)
4
4
  response = WialonApi::Api.call('core/login', user: user, password: password)
5
5
  result = WialonApi::Result.process(response)
6
- if WialonApi.wialon_edition == :pro
7
- WialonApi::Client.new(result.ssid)
8
- else
9
- WialonApi::Client.new(result.eid)
10
- end
6
+ WialonApi::Client.new(result.send(WialonApi.wialon_client_session_identifier))
11
7
  end
12
8
  end
13
9
  end
@@ -17,12 +17,21 @@ module WialonApi
17
17
 
18
18
  attr_accessor(*OPTION_NAMES)
19
19
 
20
+ READ_ONLY_OPTIONS = [
21
+ :wialon_session_identifier,
22
+ :wialon_client_session_identifier
23
+ ]
24
+
25
+ attr_reader(*READ_ONLY_OPTIONS)
26
+
20
27
  alias_method :log_requests?, :log_requests
21
28
  alias_method :log_errors?, :log_errors
22
29
  alias_method :log_responses?, :log_responses
23
30
 
24
31
  DEFAULT_WIALON_HOST = 'https://hst-api.wialon.com/wialon/ajax.html'
25
32
  DEFAULT_WIALON_EDITION = :hosting
33
+ DEFAULT_SESSION_IDENTIFIER = :sid
34
+ DEFAULT_CLIENT_SESSION_IDENTIFIER = :eid
26
35
  DEFAULT_HTTP_VERB = :post
27
36
  DEFAULT_MAX_RETRIES = 1
28
37
  DEFAULT_ADAPTER = Faraday.default_adapter
@@ -40,6 +49,8 @@ module WialonApi
40
49
  def reset
41
50
  @wialon_host = DEFAULT_WIALON_HOST
42
51
  @wialon_edition = DEFAULT_WIALON_EDITION
52
+ @wialon_session_identifier = DEFAULT_SESSION_IDENTIFIER
53
+ @wialon_client_session_identifier = DEFAULT_CLIENT_SESSION_IDENTIFIER
43
54
  @http_verb = DEFAULT_HTTP_VERB
44
55
  @max_retries = DEFAULT_MAX_RETRIES
45
56
  @faraday_options = {}
@@ -53,5 +64,13 @@ module WialonApi
53
64
  def self.extended(base)
54
65
  base.reset
55
66
  end
67
+
68
+ def wialon_edition=(edition)
69
+ @wialon_edition = edition
70
+ if edition == :pro
71
+ @wialon_session_identifier = :ssid
72
+ @wialon_client_session_identifier = :ssid
73
+ end
74
+ end
56
75
  end
57
76
  end
@@ -1,3 +1,3 @@
1
1
  module WialonApi
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -12,16 +12,6 @@ describe WialonApi::Authorization do
12
12
  WialonApi.authorize(*credentials)
13
13
  end
14
14
 
15
- it "uses ssid with wialon pro edition" do
16
- success = Hashie::Mash.new(ssid: 'sid')
17
- allow(WialonApi::Api).to receive(:call).and_return(success)
18
- WialonApi.configure do |config|
19
- config.wialon_edition = :pro
20
- end
21
- expect(WialonApi::Client).to receive(:new).with('sid')
22
- WialonApi.authorize(*credentials)
23
- end
24
-
25
15
  it 'raises an error if password or login do not match' do
26
16
  allow(WialonApi::Api).to receive(:call).and_return(error)
27
17
  expect { WialonApi.authorize(*credentials) }.to raise_error(WialonApi::Error)
@@ -22,6 +22,8 @@ describe WialonApi::Configuration do
22
22
  TestConfiguration.reset
23
23
  expect(TestConfiguration.wialon_host).to eq('https://hst-api.wialon.com/wialon/ajax.html')
24
24
  expect(TestConfiguration.wialon_edition).to eq(:hosting)
25
+ expect(TestConfiguration.wialon_session_identifier).to eq(:sid)
26
+ expect(TestConfiguration.wialon_client_session_identifier).to eq(:eid)
25
27
  expect(TestConfiguration.http_verb).to eq(:post)
26
28
  expect(TestConfiguration.max_retries).to eq(1)
27
29
  expect(TestConfiguration.faraday_options).to eq({})
@@ -33,4 +35,21 @@ describe WialonApi::Configuration do
33
35
  expect(TestConfiguration.log_responses).not_to eq(true)
34
36
  end
35
37
  end
38
+
39
+ describe 'Wialon edition specific params' do
40
+ describe 'Pro edition' do
41
+ before do
42
+ TestConfiguration.reset
43
+ TestConfiguration.configure do |config|
44
+ config.wialon_edition = :pro
45
+ end
46
+ end
47
+
48
+ it 'sets pro edition params when setting edition' do
49
+ expect(TestConfiguration.wialon_edition).to eq(:pro)
50
+ expect(TestConfiguration.wialon_session_identifier).to eq(:ssid)
51
+ expect(TestConfiguration.wialon_client_session_identifier).to eq(:ssid)
52
+ end
53
+ end
54
+ end
36
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wialon_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arsen Shamkhalov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-06 00:00:00.000000000 Z
11
+ date: 2015-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake