strava_data/models/
webhooks.rs1use 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}