Skip to content

Instantly share code, notes, and snippets.

@zupzup
zupzup / main.rs
Created October 29, 2020 13:37
Timeular Public API reports 1
println!("creating report...");
generate_report(&token).await?;
println!("downloaded report to: {}", REPORT_FILE);
@zupzup
zupzup / main.rs
Created October 29, 2020 13:37
Timeular Public API stop tracking
#[derive(Serialize, Debug)]
#[serde(rename_all = "camelCase")]
struct StopTrackingRequest {
stopped_at: String,
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
struct TimeEntryResponse {
created_time_entry: TimeEntry,
@zupzup
zupzup / main.rs
Created October 29, 2020 13:37
Timeular Public API start tracking
#[derive(Serialize, Debug)]
#[serde(rename_all = "camelCase")]
struct TrackingRequest {
started_at: String,
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
struct TrackingResponse {
current_tracking: Tracking,
@zupzup
zupzup / main.rs
Created October 29, 2020 13:37
Timeular Public API activities tracking
if !activities.is_empty() {
println!("starting to track...");
let tracking = start_tracking(&activities.get(0).expect("exists").id, &token).await?;
println!("started tracking: {:?}", tracking);
let time_entry = stop_tracking(&token).await?;
println!("created time entry: {:?}", time_entry);
}
@zupzup
zupzup / main.rs
Created October 29, 2020 13:36
Timeular Public API activities 2
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
struct ActivitiesResponse {
activities: Vec<Activity>,
inactive_activities: Vec<Activity>,
archived_activities: Vec<Activity>,
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
@zupzup
zupzup / main.rs
Created October 29, 2020 13:36
Timeular Public API activities 1
println!("fetching activities...");
let activities = fetch_activities(&token).await?;
println!("activities: {:?}", activities);
@zupzup
zupzup / main.rs
Created October 29, 2020 13:35
Timeular Public API spaces1
#[derive(Deserialize, Debug)]
struct SpacesResponse {
data: Vec<Space>,
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
struct Space {
id: String,
name: String,
@zupzup
zupzup / main.rs
Created October 29, 2020 13:35
Timeular Public API me2
#[derive(Deserialize, Debug)]
struct MeResponse {
data: Me,
}
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
struct Me {
user_id: String,
name: String,
@zupzup
zupzup / main.rs
Created October 29, 2020 13:35
Timeular Public API me1
println!("fetching me and spaces...");
let me = fetch_me(&token).await?;
let spaces = fetch_spaces(&token).await?;
println!("fetched spaces: {:?} for {:?}", spaces, me);
@zupzup
zupzup / main.rs
Created October 29, 2020 13:30
Timeular Public API url
fn url(path: &str) -> String {
format!("{}{}", BASE_URL, path)
}