Skip to main content

jacquard_api/tools_ozone/communication/
create_template.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: tools.ozone.communication.createTemplate
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_common::types::string::{Did, Language};
15use jacquard_derive::{IntoStatic, lexicon, open_union};
16use serde::{Serialize, Deserialize};
17use crate::tools_ozone::communication::TemplateView;
18
19#[lexicon]
20#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
21#[serde(rename_all = "camelCase")]
22pub struct CreateTemplate<'a> {
23    ///Content of the template, markdown supported, can contain variable placeholders.
24    #[serde(borrow)]
25    pub content_markdown: CowStr<'a>,
26    ///DID of the user who is creating the template.
27    #[serde(skip_serializing_if = "Option::is_none")]
28    #[serde(borrow)]
29    pub created_by: Option<Did<'a>>,
30    ///Message language.
31    #[serde(skip_serializing_if = "Option::is_none")]
32    pub lang: Option<Language>,
33    ///Name of the template.
34    #[serde(borrow)]
35    pub name: CowStr<'a>,
36    ///Subject of the message, used in emails.
37    #[serde(borrow)]
38    pub subject: CowStr<'a>,
39}
40
41
42#[lexicon]
43#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic)]
44#[serde(rename_all = "camelCase")]
45pub struct CreateTemplateOutput<'a> {
46    #[serde(flatten)]
47    #[serde(borrow)]
48    pub value: TemplateView<'a>,
49}
50
51
52#[open_union]
53#[derive(
54    Serialize,
55    Deserialize,
56    Debug,
57    Clone,
58    PartialEq,
59    Eq,
60    thiserror::Error,
61    miette::Diagnostic,
62    IntoStatic
63)]
64
65#[serde(tag = "error", content = "message")]
66#[serde(bound(deserialize = "'de: 'a"))]
67pub enum CreateTemplateError<'a> {
68    #[serde(rename = "DuplicateTemplateName")]
69    DuplicateTemplateName(Option<CowStr<'a>>),
70}
71
72impl core::fmt::Display for CreateTemplateError<'_> {
73    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
74        match self {
75            Self::DuplicateTemplateName(msg) => {
76                write!(f, "DuplicateTemplateName")?;
77                if let Some(msg) = msg {
78                    write!(f, ": {}", msg)?;
79                }
80                Ok(())
81            }
82            Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
83        }
84    }
85}
86
87/// Response type for tools.ozone.communication.createTemplate
88pub struct CreateTemplateResponse;
89impl jacquard_common::xrpc::XrpcResp for CreateTemplateResponse {
90    const NSID: &'static str = "tools.ozone.communication.createTemplate";
91    const ENCODING: &'static str = "application/json";
92    type Output<'de> = CreateTemplateOutput<'de>;
93    type Err<'de> = CreateTemplateError<'de>;
94}
95
96impl<'a> jacquard_common::xrpc::XrpcRequest for CreateTemplate<'a> {
97    const NSID: &'static str = "tools.ozone.communication.createTemplate";
98    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
99        "application/json",
100    );
101    type Response = CreateTemplateResponse;
102}
103
104/// Endpoint type for tools.ozone.communication.createTemplate
105pub struct CreateTemplateRequest;
106impl jacquard_common::xrpc::XrpcEndpoint for CreateTemplateRequest {
107    const PATH: &'static str = "/xrpc/tools.ozone.communication.createTemplate";
108    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
109        "application/json",
110    );
111    type Request<'de> = CreateTemplate<'de>;
112    type Response = CreateTemplateResponse;
113}