Skip to content

Commit

Permalink
Add Runsheets API (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
maful authored Oct 20, 2021
1 parent 6ee7146 commit 9a6f7b0
Show file tree
Hide file tree
Showing 7 changed files with 407 additions and 1 deletion.
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,17 @@ client.vehicles.create(vehicle: {plate_number: "SK1212", model: "Honda", speed:
client.vehicles.update(vehicle_id: vehicle_id, vehicle: {model: "Mercedes", speed: 70})
```

### Runsheets

```ruby
# list runsheets by driver
client.runsheets.drivers_tasks(driver_id: driver_id)
# filter runsheets by date
client.runsheets.drivers_tasks(driver_id: driver_id, date: "2021-10-14")
# filter by date and state of the tasks
client.runsheets.drivers_tasks(driver_id: driver_id, date: "2021-10-14", state: "successful")
```

## TO DO

- [x] Add API Documentation ([#2](https://github.com/maful/versafleet-ruby/pull/2))
Expand All @@ -123,7 +134,7 @@ client.vehicles.update(vehicle_id: vehicle_id, vehicle: {model: "Mercedes", spee
- [x] Add Jobs V2 API
- [x] Add Tasks API
- [ ] Non-Authenticated Tracking API
- [ ] Add Runsheets API
- [x] Add Runsheets API ([#5](https://github.com/maful/versafleet-ruby/pull/5))
- [x] Add Drivers API ([#1](https://github.com/maful/versafleet-ruby/pull/1))
- [x] Add Vehicles API ([#4](https://github.com/maful/versafleet-ruby/pull/4))
- [ ] Add Customers API
Expand Down
2 changes: 2 additions & 0 deletions lib/versafleet.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@ module Versafleet
autoload :TasksResource, "versafleet/resources/tasks"
autoload :DriversResource, "versafleet/resources/drivers"
autoload :VehiclesResource, "versafleet/resources/vehicles"
autoload :RunsheetsResource, "versafleet/resources/runsheets"

# Classes used to return a nicer object wrapping the response data
autoload :Job, "versafleet/objects/job"
autoload :Task, "versafleet/objects/task"
autoload :Driver, "versafleet/objects/driver"
autoload :Vehicle, "versafleet/objects/vehicle"
autoload :Runsheet, "versafleet/objects/runsheet"
end
7 changes: 7 additions & 0 deletions lib/versafleet/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@ def vehicles
VehiclesResource.new(self)
end

# Runsheets Resource instance
#
# @return [RunsheetsResource]
def runsheets
RunsheetsResource.new(self)
end

# Initializes a new Faraday connection
#
# @return [Faraday::Connection]
Expand Down
4 changes: 4 additions & 0 deletions lib/versafleet/objects/runsheet.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module Versafleet
class Runsheet < Object
end
end
22 changes: 22 additions & 0 deletions lib/versafleet/resources/runsheets.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
module Versafleet
class RunsheetsResource < Resource
# View Driver Info and related Tasks
#
# == Examples:
#
# client.runsheets.drivers_tasks(driver_id: 1)
# # filter runsheets by date
# client.runsheets.drivers_tasks(driver_id: 1, date: "2021-10-14")
# # filter by date and state of the tasks
# client.runsheets.drivers_tasks(driver_id: 1, date: "2021-10-14", state: "successful")
#
# {https://versafleet.docs.apiary.io/#reference/0/runsheet-api/view-driver-info-and-related-tasks VersaFleet API}
#
# @param driver_id [Integer] Driver ID
# @param params [Hash] the filter query
# @return [Runsheet]
def drivers_tasks(driver_id:, **params)
Runsheet.new get_request("runsheets/drivers/#{driver_id}", params: params).body.dig("driver")
end
end
end
Loading

0 comments on commit 9a6f7b0

Please sign in to comment.