Skip to content

Commit a680d93

Browse files
authored
Add Drivers API
2 parents b3fdf6b + cfbe2e8 commit a680d93

File tree

5 files changed

+45
-0
lines changed

5 files changed

+45
-0
lines changed

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,19 @@ client.tasks.completion_histories(task_id: task_id)
8787
client.tasks.base_completion_histories(task_id: task_id)
8888
```
8989

90+
### Tasks
91+
92+
```ruby
93+
# list drivers
94+
client.drivers.list
95+
# get a driver details
96+
client.drivers.retrieve(driver_id: driver_id)
97+
# create driver
98+
client.drivers.create(driver: {name: "Yolo", dob: "1990-09-09"})
99+
# update driver
100+
client.drivers.update(driver_id: driver_id, driver: {name: "Yolo update"})
101+
```
102+
90103
## TO DO
91104

92105
- [ ] Add API Documentation

lib/versafleet.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ module Versafleet
1212
# Resources (like high level API endpoints)
1313
autoload :JobsResource, "versafleet/resources/jobs"
1414
autoload :TasksResource, "versafleet/resources/tasks"
15+
autoload :DriversResource, "versafleet/resources/drivers"
1516

1617
# Classes used to return a nicer object wrapping the response data
1718
autoload :Job, "versafleet/objects/job"
1819
autoload :Task, "versafleet/objects/task"
20+
autoload :Driver, "versafleet/objects/driver"
1921
end

lib/versafleet/client.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ def tasks
1717
TasksResource.new(self)
1818
end
1919

20+
def drivers
21+
DriversResource.new(self)
22+
end
23+
2024
def connection
2125
@connection ||= Faraday.new(params: default_params) do |conn|
2226
conn.url_prefix = BASE_URL

lib/versafleet/objects/driver.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module Versafleet
2+
class Driver < Object
3+
end
4+
end

lib/versafleet/resources/drivers.rb

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
module Versafleet
2+
class DriversResource < Resource
3+
def list(**params)
4+
response = get_request("drivers", params: params)
5+
Collection.from_response(response, key: "drivers", type: Driver)
6+
end
7+
8+
def retrieve(driver_id:)
9+
Driver.new get_request("drivers/#{driver_id}").body.dig("driver")
10+
end
11+
12+
def create(driver:)
13+
payload = {driver: driver}
14+
Driver.new post_request("drivers", body: payload).body.dig("driver")
15+
end
16+
17+
def update(driver_id:, driver:)
18+
payload = {driver: driver}
19+
Driver.new put_request("drivers/#{driver_id}", body: payload).body.dig("driver")
20+
end
21+
end
22+
end

0 commit comments

Comments
 (0)