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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9716d695f09e507853ca9745f765191d5efeabda
4
- data.tar.gz: 8a2c4b15c4770a2f9cc2952efe8b1c2cec933972
3
+ metadata.gz: e3117268450676faa824eada7433de18ede4edfa
4
+ data.tar.gz: aa5eb28485a7c72425459758630ec272b9391b56
5
5
  SHA512:
6
- metadata.gz: 465a675a0ce5a9e5c70110c7b1c79243b094dcdf58f9d545243ce40ea97661dfa5d7db810ac108e42910c9f42968995473edcce51e8b582b2b608036f427f34c
7
- data.tar.gz: eb695184c6af67acd6e5c592660586744606d95926424acb4c3aef76c866cec9da60ede42917479a8838e5ac5047270f4605ad18356fb4bbf021fdb31e407fc2
6
+ metadata.gz: 78607d37513ab79914d7c61716709c053def04d59eb828cdc4fb150fced1604877b6009de5fb20b732a9dd9ce202e6d05ad8932751a94f775bc5e3ec750d4d25
7
+ data.tar.gz: 26ae3858d188e56a7d982144b8d99b475d765dc4803368e1fd91c1d9de6cdb623e977ced4101c992d713791b6f88d3dce23e73c09ad5fa4f3230040b9674097e
@@ -1,5 +1,5 @@
1
1
  require "json"
2
- require 'net/https'
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.path, header)
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
- result = HyperTrack::ApiClient.fetch(map_list_path, filter_params)
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
- result = HyperTrack::ApiClient.fetch(driver_overview_path, filter_params)
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
- path = "editable_url/"
7
- self.update(path, params, [:editable])
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
- result = HyperTrack::ApiClient.update(eta_path, params)
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
- if missing_required_fields?(params, required_fields)
14
- raise HyperTrack::InvalidParameters.new("Request is missing required params - #{required_fields - params.keys}")
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?(params, required_fields)
37
+ def missing_required_fields(params, required_fields)
38
+ missing_fields = []
37
39
  required_fields.each do |field|
38
- return true if Util.blank?(params[field])
40
+ missing_fields << field if Util.blank?(params[field])
39
41
  end
40
42
 
41
- false
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
 
@@ -30,7 +30,7 @@ module HyperTrack
30
30
  @values.values
31
31
  end
32
32
 
33
- def to_json(*a)
33
+ def to_json
34
34
  JSON.generate(@values)
35
35
  end
36
36
 
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.1
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.4.7
80
+ rubygems_version: 2.6.6
79
81
  signing_key:
80
82
  specification_version: 4
81
83
  summary: Ruby bindings for the HyperTrack API!