use crate::{LineApiResponse, LineClient};
use serde_derive::{Deserialize, Serialize};
use serde_json::{json, Value};
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)]
pub struct LineApiRichMenuUserEmptyResponse {}
#[derive(Debug, Default, Deserialize, Serialize)]
pub struct LineApiRichMenuUserGetUserRichMenuId {
#[serde(rename = "richMenuId")]
pub rich_menu_id: String,
}