line_bot_messaging_api/entity/message/
video.rs

1use crate::message::LineMessageObject;
2use serde_derive::{Deserialize, Serialize};
3use serde_json::{json, Value};
4
5#[derive(Debug, Default, Deserialize, Serialize, Clone)]
6pub struct LineMessageVideo {
7    #[serde(rename = "type")]
8    message_type: String,
9    #[serde(rename = "originalContentUrl")]
10    original_content_url: String,
11    #[serde(rename = "previewImageUrl")]
12    preview_image_url: String,
13    #[serde(rename = "trackingId")]
14    tracking_id: Option<String>,
15}
16
17impl LineMessageVideo {
18    pub fn new<T: ToString>(original_content_url: T, preview_image_url: T) -> Self {
19        Self {
20            message_type: "video".to_string(),
21            original_content_url: original_content_url.to_string(),
22            preview_image_url: preview_image_url.to_string(),
23            tracking_id: None,
24        }
25    }
26    pub fn set_tracking_id(&mut self, tracking_id: String) {
27        self.tracking_id = Some(tracking_id);
28    }
29}
30
31impl LineMessageObject for LineMessageVideo {
32    fn build(&self) -> Value {
33        json!(self)
34    }
35}