strava-wrapper 0.0.1

[WIP] A Rust wrapper for the Strava API
Documentation
mod test {
    use httpmock::MockServer;
    use serde_json::json;
    use strava_wrapper::api::StravaAPI;
    use strava_wrapper::models::Comment;
    use strava_wrapper::query::{Sendable, ID};

    #[tokio::test]
    async fn test_get_comments() {
        let server = MockServer::start();

        let raw_json = json!([{
            "id": 1,
            "activity_id": 123,
            "text": "Nice ride!",
            "resource_state": 2,
            "post_id": null,
            "mentions_metadata": null,
            "created_at": "2025-01-01T00:00:00Z",
            "cursor": null,
            "athlete": { "firstname": "John", "lastname": "D" },
            "reaction_count": 0,
            "has_reacted": false
        }]);
        let expected: Vec<Comment> = serde_json::from_value(raw_json.clone()).unwrap();

        let mock = server.mock(|when, then| {
            when.method("GET").path("/v3/activities/123/comments");
            then.status(200).json_body(raw_json);
        });

        let api = StravaAPI::new(&server.base_url(), "foo");

        let result = api
            .activities()
            .comments()
            .get()
            .id(123)
            .send()
            .await
            .unwrap();

        assert_eq!(result, expected);

        mock.assert();
    }
}