line_bot_messaging_api/api/
richmenu_alias.rs

1use crate::{LineApiResponse, LineClient};
2use serde_derive::{Deserialize, Serialize};
3use serde_json::{Value, json};
4
5impl LineClient {
6    // https://developers.line.biz/ja/reference/messaging-api/#create-rich-menu-alias
7    pub async fn rich_menu_alias_create(&self, value: Value) -> LineApiResponse<Value> {
8        self.http_post("https://api.line.me/v2/bot/richmenu/alias", &value)
9            .await
10    }
11    pub async fn rich_menu_alias_delete(
12        &self,
13        rich_menu_alias_id: String,
14    ) -> LineApiResponse<Value> {
15        self.http_delete(
16            &format!(
17                "https://api.line.me/v2/bot/richmenu/alias/{}",
18                rich_menu_alias_id
19            ),
20            &json!(""),
21        )
22        .await
23    }
24    pub async fn rich_menu_alias_update(
25        &self,
26        rich_menu_alias_id: String,
27        value: Value,
28    ) -> LineApiResponse<Value> {
29        self.http_post(
30            &format!(
31                "https://api.line.me/v2/bot/richmenu/alias/{}",
32                rich_menu_alias_id
33            ),
34            &value,
35        )
36        .await
37    }
38
39    // https://developers.line.biz/ja/reference/messaging-api/#get-rich-menu-alias-by-id
40    pub async fn rich_menu_alias_get(
41        &self,
42        rich_menu_alias_id: String,
43    ) -> LineApiResponse<LineApiRichMenuAliasGetResponse> {
44        self.http_get(
45            &format!(
46                "https://api.line.me/v2/bot/richmenu/alias/{}",
47                rich_menu_alias_id
48            ),
49            &json!(""),
50        )
51        .await
52    }
53    // https://developers.line.biz/ja/reference/messaging-api/#get-rich-menu-alias-list
54    pub async fn rich_menu_alias_list(&self) -> LineApiResponse<LineApiRichMenuAliasListResponse> {
55        self.http_get("https://api.line.me/v2/bot/richmenu/alias/list", &json!(""))
56            .await
57    }
58}
59
60#[derive(Debug, Default, Deserialize, Serialize, Clone)]
61pub struct LineApiRichMenuAliasCreateResponse {}
62#[derive(Debug, Default, Deserialize, Serialize, Clone)]
63pub struct LineApiRichMenuAliasGetResponse {
64    #[serde(rename = "richMenuId")]
65    pub rich_menu_id: String,
66    #[serde(rename = "richMenuAliasId")]
67    pub rich_menu_alias_id: String,
68}
69#[derive(Debug, Default, Deserialize, Serialize, Clone)]
70pub struct LineApiRichMenuAliasListResponse {
71    pub aliases: Vec<LineApiRichMenuAliasGetResponse>,
72}