Skip to main content

jacquard_api/tools_ozone/server/
get_config.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: tools.ozone.server.getConfig
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;
14
15#[allow(unused_imports)]
16use jacquard_common::deps::codegen::unicode_segmentation::UnicodeSegmentation;
17use jacquard_common::types::string::{Did, UriValue};
18use jacquard_derive::{IntoStatic, lexicon};
19use jacquard_lexicon::lexicon::LexiconDoc;
20use jacquard_lexicon::schema::LexiconSchema;
21
22#[allow(unused_imports)]
23use jacquard_lexicon::validation::{ConstraintError, ValidationPath};
24use serde::{Serialize, Deserialize};
25use crate::tools_ozone::server::get_config;
26
27#[lexicon]
28#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
29#[serde(rename_all = "camelCase")]
30pub struct GetConfigOutput<'a> {
31    #[serde(skip_serializing_if = "Option::is_none")]
32    #[serde(borrow)]
33    pub appview: Option<get_config::ServiceConfig<'a>>,
34    #[serde(skip_serializing_if = "Option::is_none")]
35    #[serde(borrow)]
36    pub blob_divert: Option<get_config::ServiceConfig<'a>>,
37    #[serde(skip_serializing_if = "Option::is_none")]
38    #[serde(borrow)]
39    pub chat: Option<get_config::ServiceConfig<'a>>,
40    #[serde(skip_serializing_if = "Option::is_none")]
41    #[serde(borrow)]
42    pub pds: Option<get_config::ServiceConfig<'a>>,
43    ///The did of the verifier used for verification.
44    #[serde(skip_serializing_if = "Option::is_none")]
45    #[serde(borrow)]
46    pub verifier_did: Option<Did<'a>>,
47    #[serde(skip_serializing_if = "Option::is_none")]
48    #[serde(borrow)]
49    pub viewer: Option<get_config::ViewerConfig<'a>>,
50}
51
52
53#[lexicon]
54#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
55#[serde(rename_all = "camelCase")]
56pub struct ServiceConfig<'a> {
57    #[serde(skip_serializing_if = "Option::is_none")]
58    #[serde(borrow)]
59    pub url: Option<UriValue<'a>>,
60}
61
62
63#[lexicon]
64#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Default)]
65#[serde(rename_all = "camelCase")]
66pub struct ViewerConfig<'a> {
67    #[serde(skip_serializing_if = "Option::is_none")]
68    #[serde(borrow)]
69    pub role: Option<ViewerConfigRole<'a>>,
70}
71
72
73#[derive(Debug, Clone, PartialEq, Eq, Hash)]
74pub enum ViewerConfigRole<'a> {
75    RoleAdmin,
76    RoleModerator,
77    RoleTriage,
78    RoleVerifier,
79    Other(CowStr<'a>),
80}
81
82impl<'a> ViewerConfigRole<'a> {
83    pub fn as_str(&self) -> &str {
84        match self {
85            Self::RoleAdmin => "tools.ozone.team.defs#roleAdmin",
86            Self::RoleModerator => "tools.ozone.team.defs#roleModerator",
87            Self::RoleTriage => "tools.ozone.team.defs#roleTriage",
88            Self::RoleVerifier => "tools.ozone.team.defs#roleVerifier",
89            Self::Other(s) => s.as_ref(),
90        }
91    }
92}
93
94impl<'a> From<&'a str> for ViewerConfigRole<'a> {
95    fn from(s: &'a str) -> Self {
96        match s {
97            "tools.ozone.team.defs#roleAdmin" => Self::RoleAdmin,
98            "tools.ozone.team.defs#roleModerator" => Self::RoleModerator,
99            "tools.ozone.team.defs#roleTriage" => Self::RoleTriage,
100            "tools.ozone.team.defs#roleVerifier" => Self::RoleVerifier,
101            _ => Self::Other(CowStr::from(s)),
102        }
103    }
104}
105
106impl<'a> From<String> for ViewerConfigRole<'a> {
107    fn from(s: String) -> Self {
108        match s.as_str() {
109            "tools.ozone.team.defs#roleAdmin" => Self::RoleAdmin,
110            "tools.ozone.team.defs#roleModerator" => Self::RoleModerator,
111            "tools.ozone.team.defs#roleTriage" => Self::RoleTriage,
112            "tools.ozone.team.defs#roleVerifier" => Self::RoleVerifier,
113            _ => Self::Other(CowStr::from(s)),
114        }
115    }
116}
117
118impl<'a> core::fmt::Display for ViewerConfigRole<'a> {
119    fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
120        write!(f, "{}", self.as_str())
121    }
122}
123
124impl<'a> AsRef<str> for ViewerConfigRole<'a> {
125    fn as_ref(&self) -> &str {
126        self.as_str()
127    }
128}
129
130impl<'a> serde::Serialize for ViewerConfigRole<'a> {
131    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
132    where
133        S: serde::Serializer,
134    {
135        serializer.serialize_str(self.as_str())
136    }
137}
138
139impl<'de, 'a> serde::Deserialize<'de> for ViewerConfigRole<'a>
140where
141    'de: 'a,
142{
143    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
144    where
145        D: serde::Deserializer<'de>,
146    {
147        let s = <&'de str>::deserialize(deserializer)?;
148        Ok(Self::from(s))
149    }
150}
151
152impl<'a> Default for ViewerConfigRole<'a> {
153    fn default() -> Self {
154        Self::Other(Default::default())
155    }
156}
157
158impl jacquard_common::IntoStatic for ViewerConfigRole<'_> {
159    type Output = ViewerConfigRole<'static>;
160    fn into_static(self) -> Self::Output {
161        match self {
162            ViewerConfigRole::RoleAdmin => ViewerConfigRole::RoleAdmin,
163            ViewerConfigRole::RoleModerator => ViewerConfigRole::RoleModerator,
164            ViewerConfigRole::RoleTriage => ViewerConfigRole::RoleTriage,
165            ViewerConfigRole::RoleVerifier => ViewerConfigRole::RoleVerifier,
166            ViewerConfigRole::Other(v) => ViewerConfigRole::Other(v.into_static()),
167        }
168    }
169}
170
171/// XRPC request marker type.
172
173#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, IntoStatic, Copy)]
174pub struct GetConfig;
175/// Response type for tools.ozone.server.getConfig
176pub struct GetConfigResponse;
177impl jacquard_common::xrpc::XrpcResp for GetConfigResponse {
178    const NSID: &'static str = "tools.ozone.server.getConfig";
179    const ENCODING: &'static str = "application/json";
180    type Output<'de> = GetConfigOutput<'de>;
181    type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
182}
183
184impl jacquard_common::xrpc::XrpcRequest for GetConfig {
185    const NSID: &'static str = "tools.ozone.server.getConfig";
186    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
187    type Response = GetConfigResponse;
188}
189
190/// Endpoint type for tools.ozone.server.getConfig
191pub struct GetConfigRequest;
192impl jacquard_common::xrpc::XrpcEndpoint for GetConfigRequest {
193    const PATH: &'static str = "/xrpc/tools.ozone.server.getConfig";
194    const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
195    type Request<'de> = GetConfig;
196    type Response = GetConfigResponse;
197}
198
199impl<'a> LexiconSchema for ServiceConfig<'a> {
200    fn nsid() -> &'static str {
201        "tools.ozone.server.getConfig"
202    }
203    fn def_name() -> &'static str {
204        "serviceConfig"
205    }
206    fn lexicon_doc() -> LexiconDoc<'static> {
207        lexicon_doc_tools_ozone_server_getConfig()
208    }
209    fn validate(&self) -> Result<(), ConstraintError> {
210        Ok(())
211    }
212}
213
214impl<'a> LexiconSchema for ViewerConfig<'a> {
215    fn nsid() -> &'static str {
216        "tools.ozone.server.getConfig"
217    }
218    fn def_name() -> &'static str {
219        "viewerConfig"
220    }
221    fn lexicon_doc() -> LexiconDoc<'static> {
222        lexicon_doc_tools_ozone_server_getConfig()
223    }
224    fn validate(&self) -> Result<(), ConstraintError> {
225        Ok(())
226    }
227}
228
229fn lexicon_doc_tools_ozone_server_getConfig() -> LexiconDoc<'static> {
230    #[allow(unused_imports)]
231    use jacquard_common::{CowStr, deps::smol_str::SmolStr, types::blob::MimeType};
232    use jacquard_lexicon::lexicon::*;
233    use alloc::collections::BTreeMap;
234    LexiconDoc {
235        lexicon: Lexicon::Lexicon1,
236        id: CowStr::new_static("tools.ozone.server.getConfig"),
237        defs: {
238            let mut map = BTreeMap::new();
239            map.insert(
240                SmolStr::new_static("main"),
241                LexUserType::XrpcQuery(LexXrpcQuery {
242                    parameters: None,
243                    ..Default::default()
244                }),
245            );
246            map.insert(
247                SmolStr::new_static("serviceConfig"),
248                LexUserType::Object(LexObject {
249                    properties: {
250                        #[allow(unused_mut)]
251                        let mut map = BTreeMap::new();
252                        map.insert(
253                            SmolStr::new_static("url"),
254                            LexObjectProperty::String(LexString {
255                                format: Some(LexStringFormat::Uri),
256                                ..Default::default()
257                            }),
258                        );
259                        map
260                    },
261                    ..Default::default()
262                }),
263            );
264            map.insert(
265                SmolStr::new_static("viewerConfig"),
266                LexUserType::Object(LexObject {
267                    properties: {
268                        #[allow(unused_mut)]
269                        let mut map = BTreeMap::new();
270                        map.insert(
271                            SmolStr::new_static("role"),
272                            LexObjectProperty::String(LexString { ..Default::default() }),
273                        );
274                        map
275                    },
276                    ..Default::default()
277                }),
278            );
279            map
280        },
281        ..Default::default()
282    }
283}