67 lines
1.3 KiB
Rust
67 lines
1.3 KiB
Rust
use crate::endpoints::Endpoint;
|
|
use http::Method;
|
|
use magnetar_sdk_macros::Endpoint;
|
|
use serde::{Deserialize, Serialize};
|
|
use ts_rs::TS;
|
|
|
|
use crate::types::user::{PackUserMaybeAll, PackUserSelfMaybeAll};
|
|
|
|
// Get self
|
|
#[derive(Serialize, Deserialize, TS)]
|
|
#[ts(export)]
|
|
pub struct UserSelfReq {
|
|
#[serde(default)]
|
|
pub profile: bool,
|
|
#[serde(default)]
|
|
pub pins: bool,
|
|
#[serde(default)]
|
|
pub detail: bool,
|
|
#[serde(default)]
|
|
pub secrets: bool,
|
|
}
|
|
|
|
#[derive(Endpoint)]
|
|
#[endpoint(
|
|
endpoint = "/users/@self",
|
|
method = Method::GET,
|
|
request = UserSelfReq,
|
|
response = PackUserSelfMaybeAll
|
|
)]
|
|
pub struct GetUserSelf;
|
|
|
|
// Get user by id
|
|
#[derive(Serialize, Deserialize, TS)]
|
|
#[ts(export)]
|
|
pub struct UserByIdReq {
|
|
#[serde(default)]
|
|
pub profile: bool,
|
|
#[serde(default)]
|
|
pub pins: bool,
|
|
#[serde(default)]
|
|
pub detail: bool,
|
|
#[serde(default)]
|
|
pub relation: bool,
|
|
#[serde(default)]
|
|
pub auth: bool,
|
|
}
|
|
|
|
#[derive(Endpoint)]
|
|
#[endpoint(
|
|
endpoint = "/users/:user_id",
|
|
method = Method::GET,
|
|
request = UserByIdReq,
|
|
response = PackUserMaybeAll
|
|
)]
|
|
pub struct GetUserById;
|
|
|
|
// Get user by fedi tag
|
|
|
|
#[derive(Endpoint)]
|
|
#[endpoint(
|
|
endpoint = "/users/by-acct/:user_id",
|
|
method = Method::GET,
|
|
request = UserByIdReq,
|
|
response = PackUserMaybeAll
|
|
)]
|
|
pub struct GetUserByAcct;
|