mapon_client 0.1.0 → 0.2.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 +5 -5
- data/.gitignore +1 -0
- data/Gemfile.lock +2 -2
- data/README.md +45 -35
- data/lib/mapon_client/client.rb +42 -14
- data/lib/mapon_client/helpers.rb +13 -0
- data/lib/mapon_client/parsers/empty_parser.rb +13 -0
- data/lib/mapon_client/parsers/object_parser.rb +12 -0
- data/lib/mapon_client/parsers/structure_parser.rb +11 -0
- data/lib/mapon_client/parsers.rb +7 -0
- data/lib/mapon_client/resources/application_menu_resource.rb +1 -5
- data/lib/mapon_client/resources/company_resource.rb +1 -3
- data/lib/mapon_client/resources/data_forward_resource.rb +2 -11
- data/lib/mapon_client/resources/driver_resource.rb +1 -5
- data/lib/mapon_client/resources/fuel_resource.rb +2 -11
- data/lib/mapon_client/resources/object_resource.rb +2 -11
- data/lib/mapon_client/resources/reefer_resource.rb +3 -17
- data/lib/mapon_client/resources/route_resource.rb +2 -11
- data/lib/mapon_client/resources/tachograph_resource.rb +4 -23
- data/lib/mapon_client/resources/tracking_resource.rb +1 -5
- data/lib/mapon_client/resources/unit_data_resource.rb +7 -41
- data/lib/mapon_client/resources/unit_group_resource.rb +2 -11
- data/lib/mapon_client/resources/unit_resource.rb +1 -5
- data/lib/mapon_client/resources/user_resource.rb +1 -5
- data/lib/mapon_client/resources.rb +39 -39
- data/lib/mapon_client/version.rb +1 -1
- data/lib/mapon_client.rb +1 -3
- data/mapon_client.gemspec +1 -1
- metadata +12 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 5ace0e60119c34fd750dfa62be9e2901bfde2958
|
|
4
|
+
data.tar.gz: 92f09406412f7f156ec9e889043a061afbed7d5b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7bef67e3ea0cbeac3368b04ed0f744ad0558c8abfc54a834cecd0c3d73d0fc2fa3b86f3afc488cb9bd8cf14c80d264f4b08001dc31a387bc9ca8d80462eb934e
|
|
7
|
+
data.tar.gz: d7c128bd0238508c851d06df2ebb4510935a7d14f1cc2f98c43df82213ff14028ba852d8e8f4d7fb45c784fee256308b84bffd1323fb5368d4aa6b1edc0d7e9f
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -31,20 +31,30 @@ Or install it yourself as:
|
|
|
31
31
|
## Usage
|
|
32
32
|
|
|
33
33
|
### Instantiate client:
|
|
34
|
-
* api_key - create it under Settings/API keys, if blank, will try to
|
|
35
|
-
* base_url - defaults to https://mapon.com/api/v1/
|
|
36
|
-
* format - json/xml, defaults to json
|
|
34
|
+
* *api_key* - create it under Settings/API keys, if left blank, will try to utilize environment variable *MAPON_CLIENT_API_KEY*
|
|
35
|
+
* *base_url* - defaults to https://mapon.com/api/v1/
|
|
36
|
+
* *format* - json/xml/structure/object, defaults to json
|
|
37
|
+
- json - raw json string from response,
|
|
38
|
+
- xml - raw xml string from response,
|
|
39
|
+
- structure - ruby Array and Hash structure (HTTP request gets made with format json),
|
|
40
|
+
- object - ruby OpenStruct objects (HTTP request gets made with format json)
|
|
37
41
|
|
|
38
42
|
```ruby
|
|
39
43
|
mapon_client = MaponClient::Client.new
|
|
40
44
|
# OR
|
|
41
45
|
mapon_client = MaponClient::Client.new(
|
|
42
|
-
api_key:
|
|
43
|
-
base_url: 'https://mapon.com/api/
|
|
46
|
+
api_key: 'some-api-key-goes-here',
|
|
47
|
+
base_url: 'https://mapon.com/api/v2/',
|
|
44
48
|
format: 'xml'
|
|
45
49
|
)
|
|
46
50
|
```
|
|
47
51
|
|
|
52
|
+
### Structure and Object formats
|
|
53
|
+
|
|
54
|
+
For format structure and object all requests are still made using json, but response gets parsed.
|
|
55
|
+
In case of structure it is `JSON.parse(response)`.
|
|
56
|
+
In case of object it is `JSON.parse(response, object_class: OpenStruct)`.
|
|
57
|
+
|
|
48
58
|
### Request resources
|
|
49
59
|
|
|
50
60
|
Mapon API documentation can be found [here](https://mapon.com/api).
|
|
@@ -57,8 +67,8 @@ Look there to find out required params in case error messages are not clear enou
|
|
|
57
67
|
|
|
58
68
|
#### Unit list
|
|
59
69
|
```ruby
|
|
60
|
-
@mapon_client.
|
|
61
|
-
@mapon_client.
|
|
70
|
+
@mapon_client.unit.list
|
|
71
|
+
@mapon_client.unit.list(
|
|
62
72
|
unit_id: [80669', 85113], car_number: ['VY92278', 'DK56625'], empty_box_id: true,
|
|
63
73
|
include: [
|
|
64
74
|
'in_objects', 'io_din', 'fuel', 'can', 'reefer', 'drivers', 'temperature', 'ambienttemp', 'device', 'supply_voltage'
|
|
@@ -68,122 +78,122 @@ Look there to find out required params in case error messages are not clear enou
|
|
|
68
78
|
|
|
69
79
|
#### Unit group
|
|
70
80
|
```ruby
|
|
71
|
-
@mapon_client.
|
|
81
|
+
@mapon_client.unit_group.list(unit_id: [80669, 85113])
|
|
72
82
|
|
|
73
|
-
@mapon_client.
|
|
83
|
+
@mapon_client.unit_group.list_units(id: 11677)
|
|
74
84
|
|
|
75
85
|
```
|
|
76
86
|
|
|
77
87
|
#### Unit data
|
|
78
88
|
```ruby
|
|
79
|
-
@mapon_client.
|
|
89
|
+
@mapon_client.unit_data.ignitions(
|
|
80
90
|
from: '2018-02-01T00:00:00Z', till: '2018-02-10T00:00:00Z', unit_id: [80669, 85113]
|
|
81
91
|
)
|
|
82
92
|
|
|
83
|
-
@mapon_client.
|
|
93
|
+
@mapon_client.unit_data.temperature(
|
|
84
94
|
from: '2018-02-01T00:00:00Z', till: '2018-02-20T00:00:00Z', unit_id: 80669
|
|
85
95
|
)
|
|
86
96
|
|
|
87
|
-
@mapon_client.
|
|
97
|
+
@mapon_client.unit_data.digital_inputs(
|
|
88
98
|
from: '2018-02-01T00:00:00Z', till: '2018-02-20T00:00:00Z', unit_id: 80669
|
|
89
99
|
)
|
|
90
100
|
|
|
91
|
-
@mapon_client.
|
|
101
|
+
@mapon_client.unit_data.can_period(
|
|
92
102
|
datetime: '2018-02-01T00:00:00Z', unit_id: 80669,
|
|
93
103
|
include: [
|
|
94
104
|
'rpm_average', 'rpm_max', 'fuel_level', 'service_distance', 'total_distance', 'total_fuel', 'total_engine_hours', 'ambient_temperature'
|
|
95
105
|
]
|
|
96
106
|
)
|
|
97
107
|
|
|
98
|
-
@mapon_client.
|
|
108
|
+
@mapon_client.unit_data.can_point(
|
|
99
109
|
from: '2018-02-01T00:00:00Z', till: '2018-02-20T00:00:00Z', unit_id: 80669,
|
|
100
110
|
include: [
|
|
101
111
|
'rpm_average', 'rpm_max', 'fuel_level', 'service_distance', 'total_distance', 'total_fuel', 'total_engine_hours', 'ambient_temperature'
|
|
102
112
|
]
|
|
103
113
|
)
|
|
104
114
|
|
|
105
|
-
@mapon_client.
|
|
115
|
+
@mapon_client.unit_data.fields(unit_id: 85188)
|
|
106
116
|
```
|
|
107
117
|
|
|
108
118
|
#### Reefer
|
|
109
119
|
```ruby
|
|
110
|
-
@mapon_client.
|
|
120
|
+
@mapon_client.reefer.alert_list(id: 12345, unit_id: [80669, 85113])
|
|
111
121
|
|
|
112
|
-
@mapon_client.
|
|
122
|
+
@mapon_client.reefer.runmodes(unit_id: [80669, 85113])
|
|
113
123
|
|
|
114
|
-
@mapon_client.
|
|
124
|
+
@mapon_client.reefer.list_temperature_data(
|
|
115
125
|
unit_id: 85113, from: '2018-01-20T00:00:00Z', till: '2018-03-03T00:00:00Z'
|
|
116
126
|
)
|
|
117
127
|
```
|
|
118
128
|
|
|
119
129
|
#### Route
|
|
120
130
|
```ruby
|
|
121
|
-
@mapon_client.
|
|
131
|
+
@mapon_client.route.list(
|
|
122
132
|
from: '2018-02-20T00:00:00Z', till: '2018-03-06T00:00:00Z', unit_id: [80669, 85113], empty_box_id: true,
|
|
123
133
|
include: ['polyline', 'speed', 'decoded_route', 'driver_id']
|
|
124
134
|
)
|
|
125
135
|
|
|
126
|
-
@mapon_client.
|
|
136
|
+
@mapon_client.route.custom_fields(route_id: 639655550)
|
|
127
137
|
```
|
|
128
138
|
|
|
129
|
-
For decoding polyline use https://github.com/joshuaclayton/polylines
|
|
139
|
+
*For decoding polyline use https://github.com/joshuaclayton/polylines*
|
|
130
140
|
|
|
131
141
|
#### Fuel
|
|
132
142
|
```ruby
|
|
133
|
-
@mapon_client.
|
|
143
|
+
@mapon_client.fuel.summary(
|
|
134
144
|
from: '2018-02-20T00:00:00Z', till: '2018-03-06T00:00:00Z', unit_id: [86303, 80669]
|
|
135
145
|
)
|
|
136
146
|
|
|
137
|
-
@mapon_client.
|
|
147
|
+
@mapon_client.fuel.changes(
|
|
138
148
|
from: '2018-02-20T00:00:00Z', till: '2018-03-06T00:00:00Z', unit_id: [86303, 80669]
|
|
139
149
|
)
|
|
140
150
|
```
|
|
141
151
|
|
|
142
152
|
#### Object
|
|
143
153
|
```ruby
|
|
144
|
-
@mapon_client.
|
|
154
|
+
@mapon_client.object.list(
|
|
145
155
|
id: 345901, name: 'Depot', group_id: 0, deleted: 1, updated_from: '2017-12-22T09:50:23Z', updated_till: '2017-12-22T09:55:25Z'
|
|
146
156
|
)
|
|
147
157
|
|
|
148
|
-
@mapon_client.
|
|
158
|
+
@mapon_client.object.list_groups(id: 1234, name: 'Group name')
|
|
149
159
|
```
|
|
150
160
|
|
|
151
161
|
#### User
|
|
152
162
|
```ruby
|
|
153
|
-
@mapon_client.
|
|
163
|
+
@mapon_client.user.list(id: '116361', type: 'user_all')
|
|
154
164
|
```
|
|
155
165
|
|
|
156
166
|
#### Driver
|
|
157
167
|
```ruby
|
|
158
|
-
@mapon_client.
|
|
168
|
+
@mapon_client.driver.list(id: 116551)
|
|
159
169
|
```
|
|
160
170
|
|
|
161
171
|
#### Tachograph
|
|
162
172
|
```ruby
|
|
163
|
-
@mapon_client.
|
|
173
|
+
@mapon_client.tachograph.list_ddd_driver(from: '2018-02-20T00:00:00Z', till: '2018-03-03T00:00:00Z')
|
|
164
174
|
|
|
165
|
-
@mapon_client.
|
|
175
|
+
@mapon_client.tachograph.download_ddd_driver(id: 55)
|
|
166
176
|
|
|
167
|
-
@mapon_client.
|
|
177
|
+
@mapon_client.tachograph.list_ddd_vehicle(from: '2018-02-20T00:00:00Z', till: '2018-03-03T00:00:00Z')
|
|
168
178
|
|
|
169
|
-
@mapon_client.
|
|
179
|
+
@mapon_client.tachograph.download_ddd_vehicle(id: 55)
|
|
170
180
|
```
|
|
171
181
|
|
|
172
182
|
#### Tracking
|
|
173
183
|
```ruby
|
|
174
|
-
@mapon_client.
|
|
184
|
+
@mapon_client.tracking.list(from: '2018-02-20T00:00:00Z', till: '2018-03-03T00:00:00Z')
|
|
175
185
|
```
|
|
176
186
|
|
|
177
187
|
#### Data forward
|
|
178
188
|
```ruby
|
|
179
|
-
@mapon_client.
|
|
189
|
+
@mapon_client.data_forward.list
|
|
180
190
|
|
|
181
|
-
@mapon_client.
|
|
191
|
+
@mapon_client.data_forward.list_packs
|
|
182
192
|
```
|
|
183
193
|
|
|
184
194
|
#### Application menu
|
|
185
195
|
```ruby
|
|
186
|
-
@mapon_client.
|
|
196
|
+
@mapon_client.application_menu.list
|
|
187
197
|
```
|
|
188
198
|
|
|
189
199
|
### Rest client
|
data/lib/mapon_client/client.rb
CHANGED
|
@@ -3,20 +3,24 @@ require 'mapon_client/resources'
|
|
|
3
3
|
|
|
4
4
|
module MaponClient
|
|
5
5
|
class Client
|
|
6
|
-
|
|
6
|
+
DEFAULT_BASE_URL = 'https://mapon.com/api/v1/'.freeze
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
JSON = 'json'.freeze
|
|
9
|
+
XML = 'xml'.freeze
|
|
10
|
+
STRUCTURE = 'structure'.freeze
|
|
11
|
+
OBJECT = 'object'.freeze
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
base_url || MaponClient::DEFAULT_BASE_URL
|
|
15
|
-
)
|
|
13
|
+
AVAILABLE_FORMATS = [JSON, XML, STRUCTURE, OBJECT].freeze
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
attr_reader :api_key, :base_url, :resource_base, :format, :request_format, :parser_class
|
|
16
|
+
|
|
17
|
+
def initialize(api_key: nil, base_url: nil, format: nil)
|
|
18
|
+
@api_key = api_key || ENV['MAPON_CLIENT_API_KEY']
|
|
19
|
+
@base_url = base_url || DEFAULT_BASE_URL
|
|
20
|
+
@format = format || JSON
|
|
21
|
+
|
|
22
|
+
set_request_format
|
|
23
|
+
set_parser_class
|
|
20
24
|
|
|
21
25
|
@resource_base ||= RestClient::Resource.new(
|
|
22
26
|
@base_url, headers: { params: { key: @api_key } }
|
|
@@ -30,8 +34,12 @@ module MaponClient
|
|
|
30
34
|
)
|
|
31
35
|
end
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
Resources.descendants.each do |resource_class|
|
|
38
|
+
class_eval %Q{
|
|
39
|
+
def #{resource_class.resource_name}
|
|
40
|
+
@#{resource_class.resource_name} ||= #{resource_class}.new(self)
|
|
41
|
+
end
|
|
42
|
+
}
|
|
35
43
|
end
|
|
36
44
|
|
|
37
45
|
def with_key(params)
|
|
@@ -39,8 +47,28 @@ module MaponClient
|
|
|
39
47
|
end
|
|
40
48
|
|
|
41
49
|
def append_format_to_url(*args)
|
|
42
|
-
suburl = "#{args.shift}.#{@
|
|
50
|
+
suburl = "#{args.shift}.#{@request_format}"
|
|
43
51
|
args.unshift(suburl)
|
|
44
52
|
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def set_request_format
|
|
57
|
+
if @format == STRUCTURE || @format == OBJECT
|
|
58
|
+
@request_format = JSON
|
|
59
|
+
else
|
|
60
|
+
@request_format = @format
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def set_parser_class
|
|
65
|
+
@parser_class = if @format == STRUCTURE
|
|
66
|
+
MaponClient::Parsers::StructureParser
|
|
67
|
+
elsif @format == OBJECT
|
|
68
|
+
MaponClient::Parsers::ObjectParser
|
|
69
|
+
else
|
|
70
|
+
MaponClient::Parsers::EmptyParser
|
|
71
|
+
end
|
|
72
|
+
end
|
|
45
73
|
end
|
|
46
74
|
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module MaponClient
|
|
2
|
+
module Helpers
|
|
3
|
+
def resource_name
|
|
4
|
+
self.name.sub(/.*::/, '').tap do |name|
|
|
5
|
+
name.sub!(/Resource/, '')
|
|
6
|
+
name.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
|
|
7
|
+
name.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
|
8
|
+
name.tr!("-", "_")
|
|
9
|
+
name.downcase!
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
module MaponClient
|
|
2
2
|
class Resources
|
|
3
3
|
class DataForwardResource < Resources
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
params: with_key(params)
|
|
7
|
-
)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def list_packs(params = {})
|
|
11
|
-
@client['data_forward/list_packs'].get(
|
|
12
|
-
params: with_key(params)
|
|
13
|
-
)
|
|
14
|
-
end
|
|
4
|
+
generate_action name: 'list'
|
|
5
|
+
generate_action name: 'list_packs'
|
|
15
6
|
end
|
|
16
7
|
end
|
|
17
8
|
end
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
module MaponClient
|
|
2
2
|
class Resources
|
|
3
3
|
class FuelResource < Resources
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
params: with_key(params)
|
|
7
|
-
)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def changes(params = {})
|
|
11
|
-
@client['fuel/changes'].get(
|
|
12
|
-
params: with_key(params)
|
|
13
|
-
)
|
|
14
|
-
end
|
|
4
|
+
generate_action name: 'summary'
|
|
5
|
+
generate_action name: 'changes'
|
|
15
6
|
end
|
|
16
7
|
end
|
|
17
8
|
end
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
module MaponClient
|
|
2
2
|
class Resources
|
|
3
3
|
class ObjectResource < Resources
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
params: with_key(params)
|
|
7
|
-
)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def list_groups(params = {})
|
|
11
|
-
@client['object/list_groups'].get(
|
|
12
|
-
params: with_key(params)
|
|
13
|
-
)
|
|
14
|
-
end
|
|
4
|
+
generate_action name: 'list'
|
|
5
|
+
generate_action name: 'list_groups'
|
|
15
6
|
end
|
|
16
7
|
end
|
|
17
8
|
end
|
|
@@ -1,23 +1,9 @@
|
|
|
1
1
|
module MaponClient
|
|
2
2
|
class Resources
|
|
3
3
|
class ReeferResource < Resources
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def runmodes(params = {})
|
|
11
|
-
@client['reefer/runmodes'].get(
|
|
12
|
-
params: with_key(params)
|
|
13
|
-
)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def list_temperature_data(params = {})
|
|
17
|
-
@client['reefer/list_temperature_data'].get(
|
|
18
|
-
params: with_key(params)
|
|
19
|
-
)
|
|
20
|
-
end
|
|
4
|
+
generate_action name: 'alert_list'
|
|
5
|
+
generate_action name: 'runmodes'
|
|
6
|
+
generate_action name: 'list_temperature_data'
|
|
21
7
|
end
|
|
22
8
|
end
|
|
23
9
|
end
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
module MaponClient
|
|
2
2
|
class Resources
|
|
3
3
|
class RouteResource < Resources
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
params: with_key(params)
|
|
7
|
-
)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def custom_fields(params = {})
|
|
11
|
-
@client['route/custom_fields'].get(
|
|
12
|
-
params: with_key(params)
|
|
13
|
-
)
|
|
14
|
-
end
|
|
4
|
+
generate_action name: 'list'
|
|
5
|
+
generate_action name: 'custom_fields'
|
|
15
6
|
end
|
|
16
7
|
end
|
|
17
8
|
end
|
|
@@ -1,29 +1,10 @@
|
|
|
1
1
|
module MaponClient
|
|
2
2
|
class Resources
|
|
3
3
|
class TachographResource < Resources
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def download_ddd_driver(params = {})
|
|
11
|
-
@client['tachograph/download_ddd_driver'].get(
|
|
12
|
-
params: with_key(params)
|
|
13
|
-
)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def list_ddd_vehicle(params = {})
|
|
17
|
-
@client['tachograph/list_ddd_vehicle'].get(
|
|
18
|
-
params: with_key(params)
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def download_ddd_vehicle(params = {})
|
|
23
|
-
@client['tachograph/download_ddd_vehicle'].get(
|
|
24
|
-
params: with_key(params)
|
|
25
|
-
)
|
|
26
|
-
end
|
|
4
|
+
generate_action name: 'list_ddd_driver'
|
|
5
|
+
generate_action name: 'download_ddd_driver'
|
|
6
|
+
generate_action name: 'list_ddd_vehicle'
|
|
7
|
+
generate_action name: 'download_ddd_vehicle'
|
|
27
8
|
end
|
|
28
9
|
end
|
|
29
10
|
end
|
|
@@ -1,47 +1,13 @@
|
|
|
1
1
|
module MaponClient
|
|
2
2
|
class Resources
|
|
3
3
|
class UnitDataResource < Resources
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@client['unit_data/temperature'].get(
|
|
12
|
-
params: with_key(params)
|
|
13
|
-
)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def digital_inputs(params = {})
|
|
17
|
-
@client['unit_data/digital_inputs'].get(
|
|
18
|
-
params: with_key(params)
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def can_period(params = {})
|
|
23
|
-
@client['unit_data/can_period'].get(
|
|
24
|
-
params: with_key(params)
|
|
25
|
-
)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def can_point(params = {})
|
|
29
|
-
@client['unit_data/can_point'].get(
|
|
30
|
-
params: with_key(params)
|
|
31
|
-
)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def fields(params = {})
|
|
35
|
-
@client['unit_data/fields'].get(
|
|
36
|
-
params: with_key(params)
|
|
37
|
-
)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def debug_info(params = {})
|
|
41
|
-
@client['unit_data/debug_info'].get(
|
|
42
|
-
params: with_key(params)
|
|
43
|
-
)
|
|
44
|
-
end
|
|
4
|
+
generate_action name: 'ignitions'
|
|
5
|
+
generate_action name: 'temperature'
|
|
6
|
+
generate_action name: 'digital_inputs'
|
|
7
|
+
generate_action name: 'can_period'
|
|
8
|
+
generate_action name: 'can_point'
|
|
9
|
+
generate_action name: 'fields'
|
|
10
|
+
generate_action name: 'debug_info'
|
|
45
11
|
end
|
|
46
12
|
end
|
|
47
13
|
end
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
module MaponClient
|
|
2
2
|
class Resources
|
|
3
3
|
class UnitGroupResource < Resources
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
params: with_key(params)
|
|
7
|
-
)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def list_units(params = {})
|
|
11
|
-
@client['unit_groups/list_units'].get(
|
|
12
|
-
params: with_key(params)
|
|
13
|
-
)
|
|
14
|
-
end
|
|
4
|
+
generate_action name: 'list'
|
|
5
|
+
generate_action name: 'list_units'
|
|
15
6
|
end
|
|
16
7
|
end
|
|
17
8
|
end
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
require 'mapon_client/
|
|
2
|
-
require 'mapon_client/resources/unit_resource'
|
|
3
|
-
require 'mapon_client/resources/unit_group_resource'
|
|
4
|
-
require 'mapon_client/resources/unit_data_resource'
|
|
5
|
-
require 'mapon_client/resources/route_resource'
|
|
6
|
-
require 'mapon_client/resources/fuel_resource'
|
|
7
|
-
require 'mapon_client/resources/object_resource'
|
|
8
|
-
require 'mapon_client/resources/user_resource'
|
|
9
|
-
require 'mapon_client/resources/driver_resource'
|
|
10
|
-
require 'mapon_client/resources/reefer_resource'
|
|
11
|
-
require 'mapon_client/resources/tachograph_resource'
|
|
12
|
-
require 'mapon_client/resources/tracking_resource'
|
|
13
|
-
require 'mapon_client/resources/data_forward_resource'
|
|
14
|
-
require 'mapon_client/resources/application_menu_resource'
|
|
1
|
+
require 'mapon_client/helpers'
|
|
15
2
|
|
|
16
3
|
module MaponClient
|
|
17
4
|
class Resources
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
application_menu: ApplicationMenuResource,
|
|
33
|
-
}.freeze
|
|
5
|
+
autoload :CompanyResource, 'mapon_client/resources/company_resource'
|
|
6
|
+
autoload :UnitResource, 'mapon_client/resources/unit_resource'
|
|
7
|
+
autoload :UnitGroupResource, 'mapon_client/resources/unit_group_resource'
|
|
8
|
+
autoload :UnitDataResource, 'mapon_client/resources/unit_data_resource'
|
|
9
|
+
autoload :RouteResource, 'mapon_client/resources/route_resource'
|
|
10
|
+
autoload :FuelResource, 'mapon_client/resources/fuel_resource'
|
|
11
|
+
autoload :ObjectResource, 'mapon_client/resources/object_resource'
|
|
12
|
+
autoload :UserResource, 'mapon_client/resources/user_resource'
|
|
13
|
+
autoload :DriverResource, 'mapon_client/resources/driver_resource'
|
|
14
|
+
autoload :ReeferResource, 'mapon_client/resources/reefer_resource'
|
|
15
|
+
autoload :TachographResource, 'mapon_client/resources/tachograph_resource'
|
|
16
|
+
autoload :TrackingResource, 'mapon_client/resources/tracking_resource'
|
|
17
|
+
autoload :DataForwardResource, 'mapon_client/resources/data_forward_resource'
|
|
18
|
+
autoload :ApplicationMenuResource, 'mapon_client/resources/application_menu_resource'
|
|
34
19
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
20
|
+
extend MaponClient::Helpers
|
|
21
|
+
|
|
22
|
+
def self.descendants
|
|
23
|
+
@descendants ||= begin
|
|
24
|
+
classes = constants.map { |const_name| const_get(const_name) }
|
|
25
|
+
classes.select { |klass| klass.name.end_with?('Resource') }
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.generate_action(name:, method: 'get')
|
|
30
|
+
class_eval %{
|
|
31
|
+
def #{name}(params = {})
|
|
32
|
+
raw_response = @client['#{resource_name}/#{name}'].#{method}(
|
|
33
|
+
params: with_key(params)
|
|
34
|
+
).body
|
|
35
|
+
|
|
36
|
+
parse_repsonse(raw_response)
|
|
37
|
+
end
|
|
38
|
+
}
|
|
38
39
|
end
|
|
39
40
|
|
|
40
|
-
def
|
|
41
|
-
|
|
42
|
-
raise ResourceNotFound.new(resource) unless AVAILABLE_RESOURCES[resource]
|
|
43
|
-
@resources_repository[resource] = AVAILABLE_RESOURCES[resource].new(@client)
|
|
41
|
+
def initialize(client)
|
|
42
|
+
@client = client
|
|
44
43
|
end
|
|
45
44
|
|
|
46
45
|
def with_key(params)
|
|
47
46
|
@client.with_key(params)
|
|
48
47
|
end
|
|
49
|
-
end
|
|
50
48
|
|
|
51
|
-
|
|
49
|
+
def parse_repsonse(response)
|
|
50
|
+
@client.parser_class.new(response).parse
|
|
51
|
+
end
|
|
52
52
|
end
|
|
53
53
|
end
|
data/lib/mapon_client/version.rb
CHANGED
data/lib/mapon_client.rb
CHANGED
data/mapon_client.gemspec
CHANGED
|
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
21
21
|
spec.require_paths = ["lib"]
|
|
22
22
|
|
|
23
|
-
spec.add_dependency "rest-client", "
|
|
23
|
+
spec.add_dependency "rest-client", "~> 2"
|
|
24
24
|
|
|
25
25
|
spec.add_development_dependency "bundler", "~> 1.16"
|
|
26
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mapon_client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ingus Skaistkalns
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-03-
|
|
11
|
+
date: 2018-03-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rest-client
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '2'
|
|
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
|
-
version: '
|
|
26
|
+
version: '2'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bundler
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,6 +86,11 @@ files:
|
|
|
86
86
|
- bin/setup
|
|
87
87
|
- lib/mapon_client.rb
|
|
88
88
|
- lib/mapon_client/client.rb
|
|
89
|
+
- lib/mapon_client/helpers.rb
|
|
90
|
+
- lib/mapon_client/parsers.rb
|
|
91
|
+
- lib/mapon_client/parsers/empty_parser.rb
|
|
92
|
+
- lib/mapon_client/parsers/object_parser.rb
|
|
93
|
+
- lib/mapon_client/parsers/structure_parser.rb
|
|
89
94
|
- lib/mapon_client/resources.rb
|
|
90
95
|
- lib/mapon_client/resources/application_menu_resource.rb
|
|
91
96
|
- lib/mapon_client/resources/company_resource.rb
|
|
@@ -123,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
123
128
|
version: '0'
|
|
124
129
|
requirements: []
|
|
125
130
|
rubyforge_project:
|
|
126
|
-
rubygems_version: 2.
|
|
131
|
+
rubygems_version: 2.6.13
|
|
127
132
|
signing_key:
|
|
128
133
|
specification_version: 4
|
|
129
134
|
summary: Ruby client library for https://www.mapon.com API
|