9 unstable releases (4 breaking)

0.7.0 Jul 19, 2023
0.7.0-rc.1 Jun 12, 2023
0.4.0 Mar 31, 2023
0.3.1 Nov 18, 2022
0.1.1 Jul 8, 2021

#618 in Authentication

MIT license

92KB
2K SLoC

tripactions

A fully generated, opinionated API client library for TripActions.

docs.rs

API Details

Welcome to the TripActions Booking Data API reference documentation.

You can use this API to retrieve your booking data from TripActions.

To access the API, your company admin needs to supply you with a client id and a secret key. They can generate this in the TripActions Admin Dashboard, in the Integrations section of the Settings page.


To generate a token make a request to the token API with your credentials:

curl --request POST --url 'https://api.tripactions.com/ta-auth/oauth/token' \
--header 'content-type:application/x-www-form-urlencoded' \
--data grant_type=client_credentials \
--data client_id=YOURCLIENTIDHERE \
--data client_secret=YOURSECRETHERE

Once the token was generated you can call the Booking Data API:

curl --request GET --url https://api.tripactions.com/v1/bookings\?createdFrom\=1609459200\&createdTo\=1623229202\&page\=0\&size\=10 --header 'Authorization:Bearer YOURTOKENHERE'

Client Details

This client is generated from the TripActions OpenAPI specs based on API spec version 1. This way it will remain up to date as features are added. The documentation for the crate is generated along with the code to make this library easy to use.

To install the library, add the following to your Cargo.toml file.

[dependencies]
tripactions = "0.7.0"

Basic example

Typical use will require intializing a Client. This requires a user agent string and set of credentials.

use tripactions::Client;

let tripactions = Client::new(
    String::from("client-id"),
    String::from("client-secret"),
    String::from("token"),
);

Alternatively, the library can search for most of the variables required for the client in the environment:

  • TRIPACTIONS_CLIENT_ID
  • TRIPACTIONS_CLIENT_SECRET

And then you can create a client from the environment.

use tripactions::Client;

let tripactions = Client::new_from_env(
    String::from("token"),
);

It is okay to pass an empty value for token. In the initial state of the client, you will not know this value.

To start off a fresh client and get a token, use the following.

use tripactions::Client;

async fn do_call() {
    let mut tripactions = Client::new_from_env("");

    let mut access_token = tripactions.get_access_token().await.unwrap();
}

Dependencies

~16–33MB
~605K SLoC