use crate::{LineApiResponse, LineClient};
use serde_derive::{Deserialize, Serialize};
use serde_json::json;
impl LineClient {
pub async fn rich_menu_user_link_menu(
&self,
rich_menu_id: &str,
user_id: &str,
) -> LineApiResponse<LineApiRichMenuUserEmptyResponse> {
self.http_post(
format!(
"https://api.line.me/v2/bot/user/{}/richmenu/{}",
user_id, rich_menu_id
)
.as_str(),
&json!({}),
)
.await
}
pub async fn rich_menu_user_link_rich_menu_bulk(
&self,
rich_menu_id: &str,
user_id: Vec<String>,
) -> LineApiResponse<LineApiRichMenuUserEmptyResponse> {
self.http_post(
"https://api.line.me/v2/bot/richmenu/bulk/link",
&json!({
"richMenuId": rich_menu_id,
"userIds": user_id,
}),
)
.await
}
pub async fn rich_menu_user_get_user_rich_menu_id(
&self,
user_id: &str,
) -> LineApiResponse<LineApiRichMenuUserGetUserRichMenuId> {
self.http_get(
format!("https://api.line.me/v2/bot/user/{}/richmenu", user_id).as_str(),
&json!({}),
)
.await
}
pub async fn rich_menu_user_unlink_user_rich_menu(
&self,
user_id: &str,
) -> LineApiResponse<LineApiRichMenuUserEmptyResponse> {
self.http_delete(
format!("https://api.line.me/v2/bot/user/{}/richmenu", user_id).as_str(),
&json!({}),
)
.await
}
pub async fn rich_menu_user_unlink_menu_bulk(
&self,
user_id: Vec<String>,
) -> LineApiResponse<LineApiRichMenuUserEmptyResponse> {
self.http_post(
"https://api.line.me/v2/bot/richmenu/bulk/unlink",
&json!({
"userIds": user_id,
}),
)
.await
}
}
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
pub struct LineApiRichMenuUserEmptyResponse {}
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
pub struct LineApiRichMenuUserGetUserRichMenuId {
#[serde(rename = "richMenuId")]
pub rich_menu_id: String,
}