use crate::schema::user::*;
use crate::schema::NoData;
use crate::Result;
use serde::Serialize;
#[derive(Debug, Serialize, Clone)]
pub struct CreateAccount<'a> {
pub username: &'a str,
pub password: &'a str,
pub email: &'a str,
}
impl_endpoint! {
POST "/account/create",
#[body] CreateAccount<'_>,
#[flatten_result] UserResponse
}
#[derive(Debug, Clone)]
pub struct ActivateAccount<'a> {
pub code: &'a str,
}
impl_endpoint! {
GET ("/account/activate/{}", code),
#[no_data] ActivateAccount<'_>,
#[discard_result] Result<NoData>
}
#[derive(Debug, Serialize, Clone)]
pub struct ResendActivationCode<'a> {
pub email: &'a str,
}
impl_endpoint! {
POST "/account/activate/resend",
#[body] ResendActivationCode<'_>,
#[discard_result] Result<NoData>
}
#[derive(Debug, Serialize, Clone)]
pub struct RecoverAccount<'a> {
pub email: &'a str,
}
impl_endpoint! {
POST "/account/recover",
#[body] RecoverAccount<'_>,
#[discard_result] Result<NoData>
}
#[derive(Debug, Serialize, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CompleteAccountRecover<'a> {
#[serde(skip)]
pub code: &'a str,
pub new_password: &'a str,
}
impl_endpoint! {
POST ("/account/recover/{}", code),
#[body] CompleteAccountRecover<'_>,
#[discard_result] Result<NoData>
}