Skip to main content

jacquard_api/tools_ozone/communication/
update_template.rs

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