wakapi

Crates.iowakapi
lib.rswakapi
version0.1.0
sourcesrc
created_at2024-10-02 00:20:28.74617
updated_at2024-10-16 20:50:51.736826
descriptionWakatime API client
homepagehttps://dev.solidev.net/solidev/wakapi
repositoryhttps://dev.solidev.net/solidev/wakapi.git
max_upload_size
id1393537
size71,438
Jean-Matthieu BARBIER (jmbarbier)

documentation

README

Wakapi : wakatime API client

This crate is a Work In Progress API client for the Wakatime API. It is NOT ready for production.

The following endpoints are implemented, only in read mode (GET requests), as blocking or async depending on the feature flag blocking:

  • Commits : [Commits], [CommitsParams], [Commits::fetch]
  • Projects : [Projects], [ProjectsParams], [Projects::fetch]
  • Commit : [Commit], [CommitParams], [Commit::fetch]
  • Stats : [Stats], [StatsParams], [Stats::fetch]
  • Durations : [Durations], [DurationsParams], [Durations::fetch]
  • Summaries : [Summaries], [SummariesParams], [Summaries::fetch]
  • Heartbeats : [Heartbeats], [HeartbeatsParams], [Heartbeats::fetch]
  • All Time Since Today : [AllTimeSinceToday], [AllTimeSinceTodayParams], [AllTimeSinceToday::fetch]

The structures are based on the official documentation at 2024-10-01 with a few modifications to correct some errors / inconsistencies.

Usage

Async mode

use wakapi::{WakapiClient, CommitsParams};
let client = wakapi::WakapiClient::new(
    "https://api.wakatime.com",
    "YOUR_WAKATIME_API_KEY",
);
let res = wakapi::Summaries::fetch(&client,
   wakapi::SummariesParams::from_interval("2024-01-01", "2024-01-05"),
).await.unwrap();
println!("{:?}", res);
```

### Blocking mode
```rust
use wakapi::{WakapiClient, CommitsParams};
let client = wakapi::WakapiClient::new(
    "https://api.wakatime.com",
    "YOUR_WAKATIME_API_KEY",
);
let res = wakapi::Summaries::fetch(&client,
   wakapi::SummariesParams::from_interval("2024-01-01", "2024-01-05"),
).unwrap();
println!("{:?}", res);

License

This project is licensed under the MIT License.

Commit count: 0

cargo fmt