hypertrack 0.0.1 → 0.0.2
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 +4 -4
- data/lib/hypertrack.rb +3 -1
- data/lib/hypertrack/api_client.rb +2 -2
- data/lib/hypertrack/api_operations/driver_api.rb +2 -2
- data/lib/hypertrack/api_operations/gps_log_api.rb +20 -0
- data/lib/hypertrack/api_operations/task_api.rb +4 -2
- data/lib/hypertrack/api_operations/trip_api.rb +1 -1
- data/lib/hypertrack/params_validator.rb +7 -5
- data/lib/hypertrack/resources/gps_log.rb +31 -0
- data/lib/hypertrack/resources/trip.rb +4 -1
- data/lib/hypertrack/shared_resource.rb +1 -1
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e3117268450676faa824eada7433de18ede4edfa
|
4
|
+
data.tar.gz: aa5eb28485a7c72425459758630ec272b9391b56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78607d37513ab79914d7c61716709c053def04d59eb828cdc4fb150fced1604877b6009de5fb20b732a9dd9ce202e6d05ad8932751a94f775bc5e3ec750d4d25
|
7
|
+
data.tar.gz: 26ae3858d188e56a7d982144b8d99b475d765dc4803368e1fd91c1d9de6cdb623e977ced4101c992d713791b6f88d3dce23e73c09ad5fa4f3230040b9674097e
|
data/lib/hypertrack.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require "json"
|
2
|
-
require
|
2
|
+
require "net/https"
|
3
3
|
|
4
4
|
require_relative "util"
|
5
5
|
require_relative "hypertrack/params_validator"
|
@@ -16,6 +16,7 @@ require_relative "hypertrack/api_operations/driver_api"
|
|
16
16
|
require_relative "hypertrack/api_operations/task_api"
|
17
17
|
require_relative "hypertrack/api_operations/trip_api"
|
18
18
|
require_relative "hypertrack/api_operations/shift_api"
|
19
|
+
require_relative "hypertrack/api_operations/gps_log_api"
|
19
20
|
|
20
21
|
# All HTTP calls made here
|
21
22
|
require_relative "hypertrack/api_client"
|
@@ -34,6 +35,7 @@ require_relative "hypertrack/resources/fleet"
|
|
34
35
|
require_relative "hypertrack/resources/hub"
|
35
36
|
require_relative "hypertrack/resources/shift"
|
36
37
|
require_relative "hypertrack/resources/event"
|
38
|
+
require_relative "hypertrack/resources/gps_log"
|
37
39
|
|
38
40
|
module HyperTrack
|
39
41
|
|
@@ -54,7 +54,7 @@ module HyperTrack
|
|
54
54
|
end
|
55
55
|
|
56
56
|
header = get_auth_header
|
57
|
-
request_object = VERB_MAP[http_method].new(api_uri.
|
57
|
+
request_object = VERB_MAP[http_method].new(api_uri.request_uri, header)
|
58
58
|
request_object['Content-Type'] = 'application/json'
|
59
59
|
request_object
|
60
60
|
end
|
@@ -76,7 +76,7 @@ module HyperTrack
|
|
76
76
|
begin
|
77
77
|
JSON.parse(response.body)
|
78
78
|
rescue JSON::ParserError => e
|
79
|
-
raise HyperTrack::InvalidJSONResponse(response.body)
|
79
|
+
raise HyperTrack::InvalidJSONResponse.new(response.body)
|
80
80
|
end
|
81
81
|
else
|
82
82
|
error_klass = HyperTrack::Error.defined_codes[response_code] || HyperTrack::UnknownError
|
@@ -10,14 +10,14 @@ module HyperTrack
|
|
10
10
|
|
11
11
|
def map_list(filter_params={})
|
12
12
|
map_list_path = "#{HyperTrack::Driver::API_BASE_PATH}map_list/"
|
13
|
-
|
13
|
+
HyperTrack::ApiClient.fetch(map_list_path, filter_params)
|
14
14
|
end
|
15
15
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def overview(filter_params={})
|
19
19
|
driver_overview_path = "#{HyperTrack::Driver::API_BASE_PATH}#{self.id}/overview/"
|
20
|
-
|
20
|
+
HyperTrack::ApiClient.fetch(driver_overview_path, filter_params)
|
21
21
|
end
|
22
22
|
|
23
23
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module HyperTrack
|
2
|
+
module ApiOperations
|
3
|
+
module GPSLogAPI
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.extend(ClassMethods)
|
7
|
+
end
|
8
|
+
|
9
|
+
module ClassMethods
|
10
|
+
|
11
|
+
def filtered_list(params)
|
12
|
+
if HyperTrack::ParamsValidator.valid_args?(params, [:driver_id], HyperTrack::GPSLog::VALID_ATTRIBUTE_VALUES)
|
13
|
+
HyperTrack::GPSLog.list(params.merge(filtered: true))
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -3,8 +3,10 @@ module HyperTrack
|
|
3
3
|
module TaskAPI
|
4
4
|
|
5
5
|
def editable_url(params)
|
6
|
-
|
7
|
-
|
6
|
+
if HyperTrack::ParamsValidator.valid_args?(params, [:editable], self.class::VALID_ATTRIBUTE_VALUES)
|
7
|
+
api_path = "#{self.class::API_BASE_PATH}#{self.id}/editable_url/"
|
8
|
+
HyperTrack::ApiClient.update(api_path, params)
|
9
|
+
end
|
8
10
|
end
|
9
11
|
|
10
12
|
def start(params)
|
@@ -11,7 +11,7 @@ module HyperTrack
|
|
11
11
|
def sending_eta(params)
|
12
12
|
if HyperTrack::ParamsValidator.valid_args?(params, [:driver, :destination], HyperTrack::Trip::VALID_ATTRIBUTE_VALUES)
|
13
13
|
eta_path = "#{HyperTrack::Trip::API_BASE_PATH}lite/"
|
14
|
-
|
14
|
+
HyperTrack::ApiClient.update(eta_path, params)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
@@ -10,8 +10,9 @@ module HyperTrack
|
|
10
10
|
|
11
11
|
params = Util.symbolize_keys(params)
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
missing_params = missing_required_fields(params, required_fields)
|
14
|
+
if missing_params.length > 0
|
15
|
+
raise HyperTrack::InvalidParameters.new("Request is missing required params - #{missing_params}")
|
15
16
|
end
|
16
17
|
|
17
18
|
params.each do |name, value|
|
@@ -33,12 +34,13 @@ module HyperTrack
|
|
33
34
|
params.is_a?(Hash)
|
34
35
|
end
|
35
36
|
|
36
|
-
def missing_required_fields
|
37
|
+
def missing_required_fields(params, required_fields)
|
38
|
+
missing_fields = []
|
37
39
|
required_fields.each do |field|
|
38
|
-
|
40
|
+
missing_fields << field if Util.blank?(params[field])
|
39
41
|
end
|
40
42
|
|
41
|
-
|
43
|
+
missing_fields
|
42
44
|
end
|
43
45
|
|
44
46
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module HyperTrack
|
2
|
+
class GPSLog < HyperTrack::SharedResource
|
3
|
+
include HyperTrack::ApiOperations::GPSLogAPI
|
4
|
+
|
5
|
+
API_BASE_PATH = "gps/"
|
6
|
+
REQUIRED_FIELDS = [:driver_id, :location, :speed, :bearing, :altitude, :recorded_at]
|
7
|
+
|
8
|
+
VALID_ATTRIBUTE_VALUES = {
|
9
|
+
activities: {
|
10
|
+
allowed: [:stationary, :walking, :running, :automotive, :cycling, :unknown]
|
11
|
+
},
|
12
|
+
activity_confidence: {
|
13
|
+
allowed: (0..100).to_a
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
def self.create(params={})
|
18
|
+
raise HyperTrack::MethodNotAllowed.new("Create not allowed on HyperTrack::GPSLog class")
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.list(params={})
|
22
|
+
if params.is_a?(Hash)
|
23
|
+
params[:filtered] ? params.delete(:raw) : params[:raw] = true
|
24
|
+
end
|
25
|
+
params.delete(:filtered)
|
26
|
+
|
27
|
+
super(params)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
@@ -3,11 +3,14 @@ module HyperTrack
|
|
3
3
|
include HyperTrack::ApiOperations::TripAPI
|
4
4
|
|
5
5
|
API_BASE_PATH = "trips/"
|
6
|
-
REQUIRED_FIELDS = [:driver_id, :start_location, :tasks]
|
6
|
+
REQUIRED_FIELDS = [:driver_id, :start_location, :tasks, :has_ordered_tasks]
|
7
7
|
|
8
8
|
VALID_ATTRIBUTE_VALUES = {
|
9
9
|
vehicle_type: {
|
10
10
|
allowed: HyperTrack::SharedResource::VALID_VEHICLE_TYPES
|
11
|
+
},
|
12
|
+
has_ordered_tasks: {
|
13
|
+
allowed: [true, false]
|
11
14
|
}
|
12
15
|
}
|
13
16
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hypertrack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Utsav Kesharwani
|
@@ -14,14 +14,14 @@ dependencies:
|
|
14
14
|
name: json
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.8'
|
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
26
|
version: '1.8'
|
27
27
|
description: Ruby wrapper around HyperTrack's API. Refer http://docs.hypertrack.io/
|
@@ -38,6 +38,7 @@ files:
|
|
38
38
|
- lib/hypertrack/api_operations/common/retrieve.rb
|
39
39
|
- lib/hypertrack/api_operations/common/update.rb
|
40
40
|
- lib/hypertrack/api_operations/driver_api.rb
|
41
|
+
- lib/hypertrack/api_operations/gps_log_api.rb
|
41
42
|
- lib/hypertrack/api_operations/shift_api.rb
|
42
43
|
- lib/hypertrack/api_operations/task_api.rb
|
43
44
|
- lib/hypertrack/api_operations/trip_api.rb
|
@@ -48,6 +49,7 @@ files:
|
|
48
49
|
- lib/hypertrack/resources/driver.rb
|
49
50
|
- lib/hypertrack/resources/event.rb
|
50
51
|
- lib/hypertrack/resources/fleet.rb
|
52
|
+
- lib/hypertrack/resources/gps_log.rb
|
51
53
|
- lib/hypertrack/resources/hub.rb
|
52
54
|
- lib/hypertrack/resources/neighbourhood.rb
|
53
55
|
- lib/hypertrack/resources/shift.rb
|
@@ -65,17 +67,17 @@ require_paths:
|
|
65
67
|
- lib
|
66
68
|
required_ruby_version: !ruby/object:Gem::Requirement
|
67
69
|
requirements:
|
68
|
-
- -
|
70
|
+
- - ">="
|
69
71
|
- !ruby/object:Gem::Version
|
70
72
|
version: 2.0.0
|
71
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
74
|
requirements:
|
73
|
-
- -
|
75
|
+
- - ">="
|
74
76
|
- !ruby/object:Gem::Version
|
75
77
|
version: '0'
|
76
78
|
requirements: []
|
77
79
|
rubyforge_project:
|
78
|
-
rubygems_version: 2.
|
80
|
+
rubygems_version: 2.6.6
|
79
81
|
signing_key:
|
80
82
|
specification_version: 4
|
81
83
|
summary: Ruby bindings for the HyperTrack API!
|