wakapi 0.2.0

Wakatime API client
Documentation

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.