ruby-onfleet 1.0.3 → 1.0.4

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
  SHA256:
3
- metadata.gz: 1429934d40b07829fc9b2e869ff4e56e0863150ed386e03fe55a0cd9c0ac8ae8
4
- data.tar.gz: 8633c462b796a88063bc108e6f87b65c3bc63e5c6c8ee906719858e1fb62a9af
3
+ metadata.gz: 471ca6ebbd3bc9644207244c2b19d8d60ff9221e6c3e19a50e53e9e1411db11d
4
+ data.tar.gz: 5e7c98f994113bd8ce492770398868e786522630bd0b222d3a9d9fae986b47cc
5
5
  SHA512:
6
- metadata.gz: f596880437d92765c5016c912ddbe6d5277d6a0cda1e0ad53e5f44ccf1d010f720aff669adfbbf177ae85aaa470372eb49b96a8e245123824fae9a3d0d88cb05
7
- data.tar.gz: b218461e936100d35630c3d2a5e96aa36eafec2dc2ac21f5f23b18bc6fe9da4163cd90f934dfeda5c0e559a62cc29cf2f7ca5cc8ec6e0be5d24ead9d38796808
6
+ metadata.gz: 743882b728bfcdecd669d8d72799705a16dceaa89947c6eafaf83791d04913221f557e78abac56129f599c38f5ed434798854b3ea2ba1660b7acc355444d77ea
7
+ data.tar.gz: f276fe5e4e1c895c95cb78151dd8514a6e10a5a854efd5b4e5bb7704714e0d9e9625c98e7cb1a6b2904076e8e3e4f86468fe6d3dac15bad6a777cf34ac367a9c
data/CHANGELOG.md CHANGED
@@ -21,4 +21,8 @@ Added
21
21
  ## [1.0.3](https://github.com/onfleet/ruby-onfleet/releases/tag/v1.0.3) - 2023-06-05
22
22
  Added
23
23
  * Updated package.json to reference relative path
24
- * Updated utils.rb to require error classes
24
+ * Updated utils.rb to require error classes
25
+
26
+ ## [1.0.4](https://github.com/onfleet/ruby-onfleet/releases/tag/v1.0.4) - 2024-05-29
27
+ Added
28
+ * Added support for Worker's Route Delivery Manifest
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gem 'faraday'
4
+ gem 'faraday-net_http'
4
5
  gem 'faraday-rate_limiter'
5
6
  gem 'json'
6
7
  gem 'rspec'
data/README.es.md CHANGED
@@ -89,7 +89,7 @@ Estas son las operaciones disponibles para cada endpoint:
89
89
  |[tasks](https://docs.onfleet.com/reference/tasks)|get(id)<br />list(queryParameters={})<br />get_by_short_id(shortId)|create(body={})<br />batch_create(body={})<br />batch_create_async(body={})<br />complete(id, body={})<br />clone(id)<br />auto_assign(body={})<br />match_metadata(body={})|update(id, body={})|delete(id)|
90
90
  |[teams](https://docs.onfleet.com/reference/teams)|get(id)<br />list()<br />driver_time_estimate(workerId, queryParameters={})<br />get_unassigned_tasks(id)|create(body={})<br />auto_dispatch(id, body={})|update(id, body={})<br />insert_task(teamId, body={})|delete(id)|
91
91
  |[webhooks](https://docs.onfleet.com/reference/webhooks)|list()|create(body={})|X|delete(id)|
92
- |[workers](https://docs.onfleet.com/reference/workers)|get(id=nil, queryParameters={})<br />get_tasks(id)<br />get_by_location(longitude, latitude, radius)<br />get_schedule(id)|create(body={})<br />set_schedule(id, body={})<br />match_metadata(body={})|update(id, body={})<br />insert_task(id, body={})|delete(id)|
92
+ |[workers](https://docs.onfleet.com/reference/workers)|get(id=nil, queryParameters={})<br />get_tasks(id)<br />get_by_location(longitude, latitude, radius)<br />get_schedule(id)|create(body={})<br />set_schedule(id, body={})<br />match_metadata(body={})<br />get_delivery_manifest(body={}, googleApiKey, queryParameters={})|update(id, body={})<br />insert_task(id, body={})|delete(id)|
93
93
 
94
94
  ### **Peticiones GET**
95
95
  Para obtener todos los objetos de entidad dentro de un endpoint, use `list`:
@@ -176,6 +176,17 @@ workers = Onfleet::Workers.new
176
176
  workers.create(config, body)
177
177
  ```
178
178
 
179
+ Examples of `get_delivery_manifest()`:
180
+ ```
181
+ body = {
182
+ "path": "providers/manifest/generate?hubId=<workerId>&workerId=<workerId>",
183
+ "method": "GET"
184
+ }
185
+
186
+ workers = Onfleet::Workers.new
187
+ workers.create(config, body, 'google_api_key', queryParameters={'startDate': '1455072025000', 'endDate': '1455072025000'})
188
+ ```
189
+
179
190
  Las solicitudes POST extendidas incluyen clon, batch_create, auto_assign en el endpoint de las tareas; set_schedule en el endpoint de los trabajadores; y auto_dispatch en el endpoint de los equipos. A continuación, se muestran ejemplos de estos endpoints:
180
191
 
181
192
  ```
@@ -186,12 +197,13 @@ tasks.auto_assign(config, body)
186
197
 
187
198
  workers = Onfleet::Workers.new
188
199
  workers.set_schedule(config, 'id', body)
200
+ workers.get_delivery_manfiest(config, body, 'google_api_key', queryParameters={})
189
201
 
190
202
  teams = Onfleet::Teams.new
191
203
  teams.auto_dispatch(config, 'id', body)
192
204
  ```
193
205
 
194
- Para más detalles, consulte nuestra documentación en [clone](https://docs.onfleet.com/reference#clone-task), [batch_create](https://docs.onfleet.com/reference#create-tasks-in-batch), [auto_assign](https://docs.onfleet.com/reference#automatically-assign-list-of-tasks), [set_schedule](https://docs.onfleet.com/reference#set-workers-schedule), y [auto_dispatch](https://docs.onfleet.com/reference#team-auto-dispatch).
206
+ Para más detalles, consulte nuestra documentación en [clone](https://docs.onfleet.com/reference#clone-task), [batch_create](https://docs.onfleet.com/reference#create-tasks-in-batch), [auto_assign](https://docs.onfleet.com/reference#automatically-assign-list-of-tasks), [set_schedule](https://docs.onfleet.com/reference#set-workers-schedule), [get_delivery_manifest](https://docs.onfleet.com/reference/delivery-manifest) y [auto_dispatch](https://docs.onfleet.com/reference#team-auto-dispatch).
195
207
 
196
208
  ### **Peticiones PUT**
197
209
  Para actualizar un objeto de entidad dentro de un endpoint:
data/README.md CHANGED
@@ -87,7 +87,7 @@ Here are the operations available for each entity:
87
87
  |[tasks](https://docs.onfleet.com/reference/tasks)|get(id)<br />list(queryParameters={})<br />get_by_short_id(shortId)|create(body={})<br />batch_create(body={})<br />batch_create_async(body={})<br />complete(id, body={})<br />clone(id)<br />auto_assign(body={})<br />match_metadata(body={})|update(id, body={})|delete(id)|
88
88
  |[teams](https://docs.onfleet.com/reference/teams)|get(id)<br />list()<br />driver_time_estimate(workerId, queryParameters={})<br />get_unassigned_tasks(id)|create(body={})<br />auto_dispatch(id, body={})|update(id, body={})<br />insert_task(teamId, body={})|delete(id)|
89
89
  |[webhooks](https://docs.onfleet.com/reference/webhooks)|list()|create(body={})|X|delete(id)|
90
- |[workers](https://docs.onfleet.com/reference/workers)|get(id=nil, queryParameters={})<br />get_tasks(id)<br />get_by_location(longitude, latitude, radius)<br />get_schedule(id)|create(body={})<br />set_schedule(id, body={})<br />match_metadata(body={})|update(id, body={})<br />insert_task(id, body={})|delete(id)|
90
+ |[workers](https://docs.onfleet.com/reference/workers)|get(id=nil, queryParameters={})<br />get_tasks(id)<br />get_by_location(longitude, latitude, radius)<br />get_schedule(id)|create(body={})<br />set_schedule(id, body={})<br />match_metadata(body={})<br />get_delivery_manifest(body={}, googleApiKey, queryParameters={})|update(id, body={})<br />insert_task(id, body={})|delete(id)|
91
91
 
92
92
  ### **GET Requests**
93
93
  To get all the entity objects within an endpoint use `list`:
@@ -174,6 +174,17 @@ workers = Onfleet::Workers.new
174
174
  workers.create(config, body)
175
175
  ```
176
176
 
177
+ Examples of `get_delivery_manifest()`:
178
+ ```
179
+ body = {
180
+ "path": "providers/manifest/generate?hubId=<workerId>&workerId=<workerId>",
181
+ "method": "GET"
182
+ }
183
+
184
+ workers = Onfleet::Workers.new
185
+ workers.create(config, body, 'google_api_key', queryParameters={'startDate': '1455072025000', 'endDate': '1455072025000'})
186
+ ```
187
+
177
188
  Extended POST requests include clone, batch_create, auto_assign on the tasks endpoint; set_schedule on the workers endpoint; and auto_dispatch on the teams endpoint. Examples of these endpoints are below:
178
189
 
179
190
  ```
@@ -184,12 +195,13 @@ tasks.auto_assign(config, body)
184
195
 
185
196
  workers = Onfleet::Workers.new
186
197
  workers.set_schedule(config, 'id', body)
198
+ workers.get_delivery_manfiest(config, body, 'google_api_key', queryParameters={})
187
199
 
188
200
  teams = Onfleet::Teams.new
189
201
  teams.auto_dispatch(config, 'id', body)
190
202
  ```
191
203
 
192
- For more details, check our documentation on [clone](https://docs.onfleet.com/reference#clone-task), [batch_create](https://docs.onfleet.com/reference#create-tasks-in-batch), [auto_assign](https://docs.onfleet.com/reference#automatically-assign-list-of-tasks), [set_schedule](https://docs.onfleet.com/reference#set-workers-schedule), and [auto_dispatch](https://docs.onfleet.com/reference#team-auto-dispatch).
204
+ For more details, check our documentation on [clone](https://docs.onfleet.com/reference#clone-task), [batch_create](https://docs.onfleet.com/reference#create-tasks-in-batch), [auto_assign](https://docs.onfleet.com/reference#automatically-assign-list-of-tasks), [set_schedule](https://docs.onfleet.com/reference#set-workers-schedule), [get_delivery_manifest](https://docs.onfleet.com/reference/delivery-manifest) and [auto_dispatch](https://docs.onfleet.com/reference#team-auto-dispatch).
193
205
 
194
206
  ### **PUT Requests**
195
207
  To update an entity object within an endpoint:
@@ -73,6 +73,22 @@ module Onfleet
73
73
  Onfleet.request(config, method.to_sym, path, body.to_json)
74
74
  end
75
75
 
76
+ def get_delivery_manifest(config, body, google_api_key, query_parameters_hash)
77
+ method = 'post'
78
+ query_parameters = nil
79
+
80
+ if google_api_key
81
+ config.headers['X-Api-Key'] = "Google #{google_api_key}"
82
+ end
83
+
84
+ if query_parameters_hash
85
+ query_parameters = URI.encode_www_form(query_parameters_hash)
86
+ end
87
+ path = "integrations/marketplace?#{query_parameters}"
88
+
89
+ Onfleet.request(config, method.to_sym, path, body.to_json)
90
+ end
91
+
76
92
  # ACTION: still needs to be tested
77
93
  def insert_task(config, worker_id, body)
78
94
  method = 'put'
@@ -1996,6 +1996,49 @@
1996
1996
  }
1997
1997
  ]
1998
1998
  }
1999
+ },
2000
+ "getManifestProvider": {
2001
+ "request": {
2002
+ "path": "providers/manifest/generate?hubId=<hubId>&workerId=<workerId>",
2003
+ "method": "GET"
2004
+ },
2005
+ "response": {
2006
+ "manifestDate": 1694199600000,
2007
+ "departureTime": 1694199600000,
2008
+ "driver": {
2009
+ "name": "Test One",
2010
+ "phone": "+16265555768"
2011
+ },
2012
+ "vehicle": {
2013
+ "type": "CAR",
2014
+ "description": "Honda",
2015
+ "licensePlate": "12345687",
2016
+ "color": "Purple",
2017
+ "timeLastModified": 1692746334342
2018
+ },
2019
+ "hubAddress": "1111 South Figueroa Street, Los Angeles, California 90015",
2020
+ "turnByTurn": [
2021
+ {
2022
+ "start_address": "1403 W Pico Blvd, Los Angeles, CA 90015, USA",
2023
+ "end_address": "2695 E Katella Ave, Anaheim, CA 92806, USA",
2024
+ "eta": 1692992466000,
2025
+ "driving_distance": "30.6 mi",
2026
+ "steps": [
2027
+ "Head southeast on 12th St E toward S Figueroa StPartial restricted usage road",
2028
+ "Turn right onto Flower St",
2029
+ "Turn left onto the Interstate 10 E ramp to 18th St",
2030
+ "Merge onto I-10 E",
2031
+ "Take the exit onto I-5 S toward Santa Ana",
2032
+ "Take exit 109A for Katella Ave",
2033
+ "Turn right onto E Katella AvePass by Comerica Bank (on the right in 1.3 mi)",
2034
+ "Turn left onto S Douglass Rd",
2035
+ "Turn right onto Stanley Cup Wy",
2036
+ "Turn right"
2037
+ ]
2038
+ }
2039
+ ],
2040
+ "totalDistance": null
2041
+ }
1999
2042
  }
2000
2043
  }
2001
2044
  }
@@ -1004,4 +1004,30 @@ describe Onfleet::Workers do
1004
1004
  expect(response.status).to eq 200
1005
1005
  expect(response.body).to include('entries')
1006
1006
  end
1007
+
1008
+ it 'can get Delivery Manifest by calling POST /integrations/marketplace' do
1009
+ # request data
1010
+ config = RSpec.configuration.api_variables
1011
+ request_data = RSpec.configuration.test_data['workers']['get_delivery_manifest']['request']
1012
+ path = "integrations/marketplace"
1013
+ method = 'post'
1014
+ headers = {}
1015
+ headers['Content-Type'] = 'application/json'
1016
+ headers['User-Agent'] = '@onfleet/ruby-onfleet-1.0'
1017
+ headers['X-Api-Key'] = 'Google <google_api_key>'
1018
+
1019
+ # response data
1020
+ response_data = RSpec.configuration.test_data['workers']['get_delivery_manifest']['response']
1021
+
1022
+ stub_request(method.to_sym, "#{config.base_url}/#{path}")
1023
+ .with(basic_auth: [config.api_key, config.api_key], body: request_data, headers: headers)
1024
+ .to_return(status: 200, body: response_data.to_json)
1025
+
1026
+ worker = Onfleet::Workers.new
1027
+ response = worker.get_delivery_manifest(config, request_data, 'google_api_key', queryParameters={'startDate': '1455072025000', 'endDate': '1455072025000'})
1028
+
1029
+ expect(response.status).to eq 200
1030
+ expect(response.body).to include('manifestDate')
1031
+ expect(response.body).to include('turnByTurn')
1032
+ end
1007
1033
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onfleet/ruby-onfleet",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Onfleet's Ruby API wrapper package",
5
5
  "main": "onfleet.rb",
6
6
  "scripts": {
data/ruby-onfleet.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'ruby-onfleet'
3
- s.version = '1.0.3'
4
- s.date = '2023-06-05'
3
+ s.version = '1.0.4'
4
+ s.date = '2024-06-10'
5
5
  s.summary = 'Onfleet Ruby API wrapper package'
6
6
  s.description = 'The Onfleet Ruby library provides convenient access to the Onfleet API.'
7
7
  s.authors = ['Dan Menza']
@@ -10,7 +10,8 @@ Gem::Specification.new do |s|
10
10
  s.license = 'MIT'
11
11
  s.metadata = { 'source_code_uri' => 'https://github.com/onfleet/ruby-onfleet' }
12
12
 
13
- s.add_dependency('faraday', '~> 1.10.0')
13
+ s.add_dependency('faraday', '~> 2.9.0')
14
+ s.add_dependency('faraday-net_http', '~> 3.1.0')
14
15
  s.add_dependency('faraday-rate_limiter', '~> 0.0.4')
15
16
  s.add_dependency('json', '~> 2.6.3')
16
17
  s.add_dependency('uri', '~> 0.12.1')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-onfleet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Menza
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-05 00:00:00.000000000 Z
11
+ date: 2024-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.10.0
19
+ version: 2.9.0
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: 1.10.0
26
+ version: 2.9.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday-net_http
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 3.1.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.1.0
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: faraday-rate_limiter
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -134,7 +148,7 @@ licenses:
134
148
  - MIT
135
149
  metadata:
136
150
  source_code_uri: https://github.com/onfleet/ruby-onfleet
137
- post_install_message:
151
+ post_install_message:
138
152
  rdoc_options: []
139
153
  require_paths:
140
154
  - lib
@@ -149,8 +163,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
163
  - !ruby/object:Gem::Version
150
164
  version: '0'
151
165
  requirements: []
152
- rubygems_version: 3.0.3.1
153
- signing_key:
166
+ rubygems_version: 3.4.10
167
+ signing_key:
154
168
  specification_version: 4
155
169
  summary: Onfleet Ruby API wrapper package
156
170
  test_files: []