line_bot_messaging_api/entity/webhook/
source.rs

1use serde_derive::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize, Clone)]
4#[serde(untagged)]
5pub enum LineWebhookSource {
6    User(LineWebhookSourceUser),
7    Group(LineWebhookSourceGroup),
8    Room(LineWebhookSourceRoom),
9}
10
11#[derive(Debug, Deserialize, Serialize, Clone)]
12pub struct LineWebhookSourceUser {
13    #[serde(rename = "type")]
14    pub source_type: String,
15    #[serde(rename = "userId")]
16    pub user_id: String,
17}
18
19#[derive(Debug, Deserialize, Serialize, Clone)]
20pub struct LineWebhookSourceGroup {
21    #[serde(rename = "type")]
22    pub source_type: String,
23    #[serde(rename = "groupId")]
24    pub group_id: String,
25    #[serde(rename = "userId")]
26    pub user_id: Option<String>,
27}
28
29#[derive(Debug, Deserialize, Serialize, Clone)]
30pub struct LineWebhookSourceRoom {
31    #[serde(rename = "type")]
32    pub source_type: String,
33    #[serde(rename = "roomId")]
34    pub room_id: String,
35    #[serde(rename = "userId")]
36    pub user_id: Option<String>,
37}