hypertrack 0.0.1 → 0.0.2

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: 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!