Crate pinnacle

source ·
Expand description

pinnacle

Rust Wrapper for Pinnacle Sports API

Note Not all of the API is currently wrapped, but it should be relatively easy to add missing endpoints. All you need to do is implement the corresponding request and probably a response. Don’t hesitate to make a PR if you do.

Here are all the currently wrapped requests.

Usage

use pinnacle::prelude::*;

let client = PinnacleClient::new("pinnacle_user", "pinnacle_password");
let req = GetStraightOdds {
    sport_id: 29,
    ..Default::default()
};
let odds = client.get(&req).await?;

You can also use a client that caches responses, which is helpful for development purposes:

use pinnacle::prelude::*;
use std::time::Duration;

let client = PinnacleCachingClient::new(
    "pinnacle_user",
    "pinnacle_password",
    "cache-folder",
    Duration::from_secs(60 * 5),
);
let balance = client.get(&GetClientBalance).await?;
// Now, if you repeat the request within 5 minutes, the cached version will be used
// instead of making a new request.
let cached_balance = client.get(&GetClientBalance).await?;

Modules

  • Pinnacle API client with the ability to cache requests in the file system. This replicates the PinnacleClient API and is designed for easy client swapping during development.
  • Pinnacle API client
  • Structs and traits for convenient import
  • Typed Pinnacle API requests
  • Typed Pinnacle API responses
  • Traits
  • Utilities