strava_data/models/
webhooks.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct WebhookVerificationQueryParams {
5    #[serde(rename = "hub.mode")]
6    pub hub_mode: String,
7
8    #[serde(rename = "hub.challenge")]
9    pub hub_challenge: String,
10
11    #[serde(rename = "hub.verify_token")]
12    pub hub_verify_token: String,
13}
14
15#[derive(Debug, Serialize, Deserialize)]
16pub struct WebhookVerificationResponse {
17    #[serde(rename = "hub.challenge")]
18    pub hub_challenge: String,
19}
20
21#[derive(Serialize, Deserialize, Debug)]
22pub struct WebhookEventData {
23    pub object_type: WebhookEventDataObjectType,
24    pub object_id: i64,
25    pub aspect_type: WebhookEventDataAspectType,
26    pub updates: WebhookEventDataUpdates,
27    pub owner_id: i32,
28    pub subscription_id: i64,
29    pub event_time: i64,
30}
31
32#[derive(Serialize, Deserialize, Debug)]
33pub struct WebhookEventDataUpdates {
34    pub authorized: Option<String>,
35}
36
37#[derive(Serialize, Deserialize, Debug)]
38pub enum WebhookEventDataObjectType {
39    #[serde(rename = "activity")]
40    Activity,
41    #[serde(rename = "athlete")]
42    Athlete,
43}
44
45#[derive(Serialize, Deserialize, Debug)]
46pub enum WebhookEventDataAspectType {
47    #[serde(rename = "create")]
48    Create,
49    #[serde(rename = "update")]
50    Update,
51    #[serde(rename = "delete")]
52    Delete,
53}