Skip to main content

jacquard_api/com_atproto/server/
update_email.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: com.atproto.server.updateEmail
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[allow(unused_imports)]
9use alloc::collections::BTreeMap;
10
11#[allow(unused_imports)]
12use core::marker::PhantomData;
13use jacquard_common::CowStr;
14use jacquard_derive::{IntoStatic, lexicon, open_union};
15use serde::{Serialize, Deserialize};
16
17#[lexicon]
18#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
19#[serde(rename_all = "camelCase")]
20pub struct UpdateEmail<'a> {
21    #[serde(borrow)]
22    pub email: CowStr<'a>,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub email_auth_factor: Option<bool>,
25    ///Requires a token from com.atproto.sever.requestEmailUpdate if the account's email has been confirmed.
26    #[serde(skip_serializing_if = "Option::is_none")]
27    #[serde(borrow)]
28    pub token: Option<CowStr<'a>>,
29}
30
31
32#[open_union]
33#[derive(
34    Serialize,
35    Deserialize,
36    Debug,
37    Clone,
38    PartialEq,
39    Eq,
40    thiserror::Error,
41    miette::Diagnostic,
42    IntoStatic
43)]
44
45#[serde(tag = "error", content = "message")]
46#[serde(bound(deserialize = "'de: 'a"))]
47pub enum UpdateEmailError<'a> {
48    #[serde(rename = "ExpiredToken")]
49    ExpiredToken(Option<CowStr<'a>>),
50    #[serde(rename = "InvalidToken")]
51    InvalidToken(Option<CowStr<'a>>),
52    #[serde(rename = "TokenRequired")]
53    TokenRequired(Option<CowStr<'a>>),
54}
55
56impl core::fmt::Display for UpdateEmailError<'_> {
57    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
58        match self {
59            Self::ExpiredToken(msg) => {
60                write!(f, "ExpiredToken")?;
61                if let Some(msg) = msg {
62                    write!(f, ": {}", msg)?;
63                }
64                Ok(())
65            }
66            Self::InvalidToken(msg) => {
67                write!(f, "InvalidToken")?;
68                if let Some(msg) = msg {
69                    write!(f, ": {}", msg)?;
70                }
71                Ok(())
72            }
73            Self::TokenRequired(msg) => {
74                write!(f, "TokenRequired")?;
75                if let Some(msg) = msg {
76                    write!(f, ": {}", msg)?;
77                }
78                Ok(())
79            }
80            Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
81        }
82    }
83}
84
85/// Response type for com.atproto.server.updateEmail
86pub struct UpdateEmailResponse;
87impl jacquard_common::xrpc::XrpcResp for UpdateEmailResponse {
88    const NSID: &'static str = "com.atproto.server.updateEmail";
89    const ENCODING: &'static str = "application/json";
90    type Output<'de> = ();
91    type Err<'de> = UpdateEmailError<'de>;
92}
93
94impl<'a> jacquard_common::xrpc::XrpcRequest for UpdateEmail<'a> {
95    const NSID: &'static str = "com.atproto.server.updateEmail";
96    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
97        "application/json",
98    );
99    type Response = UpdateEmailResponse;
100}
101
102/// Endpoint type for com.atproto.server.updateEmail
103pub struct UpdateEmailRequest;
104impl jacquard_common::xrpc::XrpcEndpoint for UpdateEmailRequest {
105    const PATH: &'static str = "/xrpc/com.atproto.server.updateEmail";
106    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
107        "application/json",
108    );
109    type Request<'de> = UpdateEmail<'de>;
110    type Response = UpdateEmailResponse;
111}