Git Product home page Git Product logo

pyonfleet's Introduction

Onfleet Python Wrapper

Travis (.org) GitHub PyPI GitHub top language PyPI - Downloads

Read this document in another language: English, 正體中文

Visit our blog post on the API wrapper project to learn more about our initiatives. If you have any questions, please reach out to Onfleet by submitting an issue here or contact [email protected]

Table of Contents

Synopsis

The Onfleet Python library provides convenient access to the Onfleet API.

Installation

pip install pyonfleet

Usage

Before using the API wrapper, you will need to obtain an API key from your organization admin. Creation and integration of API keys are performed through the Onfleet dashboard.

To authenticate, you will also need to create a file named .auth.json under your working directory, this is where you will store your API credentials.

The format of .auth.json is shown below:

{
    "API_KEY": "<your_api_key>", 
}

You can also opt in to not store your API key here and use it on the fly instead.

Once the Onfleet object is created, you will get access to all the API endpoints as documented in the Onfleet API documentation. Here are some usage case:

from onfleet import Onfleet

api = Onfleet() # if .auth.json was provided
api = Onfleet(api_key="<your_api_key>") # if no .auth.json was provided

Throttling

Rate limiting is enforced by the API with a threshold of 20 requests per second across all your organization's API keys, learn more about it here.

Responses

The pyonfleet API wrapper returns the body of a Response object.

Supported CRUD Operations

The base URL for the Onfleet API is https://onfleet.com/api/v2, here are the supported CRUD operations for each endpoint:

<endpoint> GET POST PUT DELETE
Admins get() create(body) update(id, body) deleteOne(id)
Containers get(workers=id), get(teams=id), get(organizations=id) x update(id, body) x
Destinations get(id) create(body) x x
Hubs get() x x x
Organization get(), get(id) x insertTask(id, body) x
Recipients get(id), get(name), get(phone) create(body) update(id, body) x
Tasks get(queryParams), get(id), get(shortId) create(body), clone(id), forceComplete(id), batch(body), autoAssign(body) update(id, body) deleteOne(id)
Teams get(), get(id) create(body) update(id, body), insertTask(id, body) deleteOne(id)
Webhooks get() create(body) x deleteOne(id)
Workers get(), get(queryParams), get(id), getByLocation(queryParams), getSchedule(id) create(body), setSchedule(id, body) update(id, body), insertTask(id, body) deleteOne(id)

GET Requests

To get all the documents within an endpoint:

get()
Examples of get()
api.workers.get()
api.workers.get(queryParams="")

Option to use query parameters for some certain endpoints, refer back to API documents for endpoints that support query parameters:

api.workers.get(queryParams="phones=<phone_number>")

or

api.workers.get(queryParams={"phones":"<phone_number>"})

To get one of the document within an endpoint, specify the param that you wish to search by:

get(param=<some_param>)
Examples of get(param)
api.workers.get(id="<24_digit_id>")
api.workers.get(id="<24_digit_id>", queryParams={"analytics": "true"})
api.tasks.get(shortId="<shortId>")
api.recipients.get(phone="<phone_number>")
api.recipients.get(name="<recipient_name>")

api.containers.get(workers="<worker_id>")
api.containers.get(teams="<team_id>")
api.containers.get(organizations="<org_id>")

To get a driver by location, use the getByLocation function:

getByLocation(queryParams=<some_param>)
Examples of getByLocation:
params = {"longitude":"-122.4","latitude":"37.7601983","radius":"6000"}
api.workers.getByLocation(queryParams=params)

POST Requests

To create a document within an endpoint:

create(body="<body_object>")
Examples of create()
driver = {
  "name": "A Swartz Test",
  "phone": "+16173428853",
  "teams": ["<a_team_id>", "<a_team_id> (optional)..."],
  "vehicle": {
    "type": "CAR",
    "description": "Tesla Model S",
    "licensePlate": "FKNS9A",
    "color": "purple",
  }
}

api.workers.create(body=driver)

Extended POST requests include clone, forceComplete, batchCreate, autoAssign on the tasks endpoint, and setSchedule on the workers endpoint:

api.tasks.clone(id="<24_digit_id>")
api.tasks.forceComplete(id="<24_digit_id>", body="<completion_details>")
api.tasks.batchCreate(body="<task_object_get>")
api.tasks.autoAssign(body="<auto_assign_object>")

api.workers.setSchedule(id="<24_digit_id>", body="<schedule_object>")

For more details, check our documentation on clone, forceComplete, batchCreate, autoAssign, and setSchedule

PUT Requests

To update a document within an endpoint:

update(id="<24_digit_id>", body="<body_object>")
Examples of update()
updateBody = {
    "name": "New Driver Name",
}
api.workers.update(id="<24_digit_id>", body=updateBody)
Examples of updateSchedule()
api.workers.updateSchedule(id="<24_digit_id>", body=newSchedule)

For more details, check our documentation on updateSchedule

Examples of insertTask()
api.workers.insertTask(id="kAQ*G5hnqlOq4jVvwtGNuacl", body="<body_object>")

DELETE Requests

To delete a document within an endpoint:

deleteOne(id="<24_digit_id>")
Examples of deleteOne()
api.workers.deleteOne(id="<24_digit_id>")

pyonfleet's People

Contributors

jamesliupenn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.