Skip to main content

WakaClient

Struct WakaClient 

Source
pub struct WakaClient { /* private fields */ }
Expand description

Async HTTP client for the WakaTime API v1.

All requests are authenticated via HTTP Basic auth using the supplied API key. The client performs automatic retry with exponential back-off on transient errors (network failures and HTTP 5xx responses).

§Example

use waka_api::WakaClient;

let client = WakaClient::new("waka_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
let me = client.me().await?;
println!("Logged in as {}", me.username);

Implementations§

Source§

impl WakaClient

Source

pub fn new(api_key: &str) -> Self

Creates a new client pointing at the production WakaTime API.

§Panics

Panics if the default base URL cannot be parsed (compile-time constant — this is unreachable in practice).

Source

pub fn with_base_url(api_key: &str, base_url: &str) -> Result<Self, ApiError>

Creates a new client pointing at a custom base URL.

Primarily used in tests to target a wiremock mock server.

§Errors

Returns an error if base_url is not a valid URL.

Source

pub async fn me(&self) -> Result<User, ApiError>

Returns the profile of the currently authenticated user.

Calls GET /users/current.

§Errors

Returns ApiError::Unauthorized if the API key is invalid. Returns ApiError::NetworkError on connection or timeout failures.

Source

pub async fn summaries( &self, params: SummaryParams, ) -> Result<SummaryResponse, ApiError>

Returns coding summaries for the date range described by params.

Calls GET /users/current/summaries.

§Errors

Returns ApiError::Unauthorized if the API key is invalid. Returns ApiError::NetworkError on connection or timeout failures. Returns ApiError::ParseError if the response cannot be deserialized.

Source

pub async fn projects(&self) -> Result<ProjectsResponse, ApiError>

Returns all projects the authenticated user has logged time against.

Calls GET /users/current/projects.

§Errors

Returns ApiError::Unauthorized if the API key is invalid. Returns ApiError::NetworkError on connection or timeout failures. Returns ApiError::ParseError if the response cannot be deserialized.

Source

pub async fn stats(&self, range: StatsRange) -> Result<StatsResponse, ApiError>

Returns aggregated coding stats for the given predefined range.

Calls GET /users/current/stats/{range}.

§Errors

Returns ApiError::Unauthorized if the API key is invalid. Returns ApiError::NetworkError on connection or timeout failures. Returns ApiError::ParseError if the response cannot be deserialized.

Source

pub async fn goals(&self) -> Result<GoalsResponse, ApiError>

Returns all coding goals for the authenticated user.

Calls GET /users/current/goals.

§Errors

Returns ApiError::Unauthorized if the API key is invalid. Returns ApiError::NetworkError on connection or timeout failures. Returns ApiError::ParseError if the response cannot be deserialized.

Source

pub async fn leaderboard( &self, page: u32, ) -> Result<LeaderboardResponse, ApiError>

Returns the public WakaTime leaderboard for the given page.

Page numbers are 1-based. Calls GET /users/current/leaderboards.

§Errors

Returns ApiError::Unauthorized if the API key is invalid. Returns ApiError::NetworkError on connection or timeout failures. Returns ApiError::ParseError if the response cannot be deserialized.

Trait Implementations§

Source§

impl Clone for WakaClient

Source§

fn clone(&self) -> WakaClient

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WakaClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more