bangumi_api/module/user/
service.rs1use anyhow::Result;
2use bytes::Bytes;
3use reqwest::Method;
4
5use crate::common::model::BangumiClient;
6
7use super::model::{AvatarType, User, UserPublic};
8
9impl BangumiClient {
10 pub async fn get_user(&self, username: &str) -> Result<UserPublic> {
11 let url = format!("{}/v0/users/{username}", self.base_path);
12
13 let request_builder = self.request_builder(Method::GET, &url);
14
15 let res = self.request_send(request_builder).await?.json().await?;
16
17 Ok(res)
18 }
19
20 pub async fn get_user_avatar(&self, username: &str, r#type: AvatarType) -> Result<Bytes> {
21 let url = format!("{}/v0/users/{username}/avatar", self.base_path);
22
23 let mut request_builder = self.request_builder(Method::GET, &url);
24 request_builder = request_builder.query(&[("type", r#type)]);
25
26 let res = self.request_send(request_builder).await?.bytes().await?;
27
28 Ok(res)
29 }
30
31 pub async fn get_me(&self) -> Result<User> {
32 let url = format!("{}/v0/me", self.base_path);
33
34 let request_builder = self.request_builder(Method::GET, &url);
35
36 let res = self.request_send(request_builder).await?.json().await?;
37
38 Ok(res)
39 }
40}