jacquard_api/com_atproto/moderation/
create_report.rs1#[jacquard_derive::lexicon]
9#[derive(
10 serde::Serialize,
11 serde::Deserialize,
12 Debug,
13 Clone,
14 PartialEq,
15 Eq,
16 bon::Builder,
17 jacquard_derive::IntoStatic
18)]
19#[serde(rename_all = "camelCase")]
20#[builder(start_fn = new)]
21pub struct CreateReport<'a> {
22 #[serde(skip_serializing_if = "std::option::Option::is_none")]
23 #[serde(borrow)]
24 pub mod_tool: std::option::Option<jacquard_common::types::value::Data<'a>>,
25 #[serde(skip_serializing_if = "std::option::Option::is_none")]
27 #[serde(borrow)]
28 #[builder(into)]
29 pub reason: std::option::Option<jacquard_common::CowStr<'a>>,
30 #[serde(borrow)]
32 pub reason_type: crate::com_atproto::moderation::ReasonType<'a>,
33 #[serde(borrow)]
34 pub subject: CreateReportSubject<'a>,
35 #[serde(flatten)]
36 #[serde(borrow)]
37 #[builder(default)]
38 pub extra_data: ::std::collections::BTreeMap<
39 ::jacquard_common::smol_str::SmolStr,
40 ::jacquard_common::types::value::Data<'a>,
41 >,
42}
43
44#[jacquard_derive::open_union]
45#[derive(
46 serde::Serialize,
47 serde::Deserialize,
48 Debug,
49 Clone,
50 PartialEq,
51 Eq,
52 jacquard_derive::IntoStatic
53)]
54#[serde(tag = "$type")]
55#[serde(bound(deserialize = "'de: 'a"))]
56pub enum CreateReportSubject<'a> {
57 #[serde(rename = "com.atproto.admin.defs#repoRef")]
58 RepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>),
59 #[serde(rename = "com.atproto.repo.strongRef")]
60 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>),
61}
62
63#[jacquard_derive::lexicon]
64#[derive(
65 serde::Serialize,
66 serde::Deserialize,
67 Debug,
68 Clone,
69 PartialEq,
70 Eq,
71 jacquard_derive::IntoStatic
72)]
73#[serde(rename_all = "camelCase")]
74pub struct CreateReportOutput<'a> {
75 pub created_at: jacquard_common::types::string::Datetime,
76 pub id: i64,
77 #[serde(skip_serializing_if = "std::option::Option::is_none")]
78 #[serde(borrow)]
79 pub reason: std::option::Option<jacquard_common::CowStr<'a>>,
80 #[serde(borrow)]
81 pub reason_type: crate::com_atproto::moderation::ReasonType<'a>,
82 #[serde(borrow)]
83 pub reported_by: jacquard_common::types::string::Did<'a>,
84 #[serde(borrow)]
85 pub subject: CreateReportOutputSubject<'a>,
86}
87
88#[jacquard_derive::open_union]
89#[derive(
90 serde::Serialize,
91 serde::Deserialize,
92 Debug,
93 Clone,
94 PartialEq,
95 Eq,
96 jacquard_derive::IntoStatic
97)]
98#[serde(tag = "$type")]
99#[serde(bound(deserialize = "'de: 'a"))]
100pub enum CreateReportOutputSubject<'a> {
101 #[serde(rename = "com.atproto.admin.defs#repoRef")]
102 RepoRef(Box<crate::com_atproto::admin::RepoRef<'a>>),
103 #[serde(rename = "com.atproto.repo.strongRef")]
104 StrongRef(Box<crate::com_atproto::repo::strong_ref::StrongRef<'a>>),
105}
106
107pub struct CreateReportResponse;
110impl jacquard_common::xrpc::XrpcResp for CreateReportResponse {
111 const NSID: &'static str = "com.atproto.moderation.createReport";
112 const ENCODING: &'static str = "application/json";
113 type Output<'de> = CreateReportOutput<'de>;
114 type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
115}
116
117impl<'de> jacquard_common::xrpc::XrpcRequest<'de> for CreateReport<'de> {
118 const NSID: &'static str = "com.atproto.moderation.createReport";
119 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
120 "application/json",
121 );
122 type Response = CreateReportResponse;
123}
124
125pub struct CreateReportRequest;
128impl jacquard_common::xrpc::XrpcEndpoint for CreateReportRequest {
129 const PATH: &'static str = "/xrpc/com.atproto.moderation.createReport";
130 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Procedure(
131 "application/json",
132 );
133 type Request<'de> = CreateReport<'de>;
134 type Response = CreateReportResponse;
135}
136
137#[jacquard_derive::lexicon]
139#[derive(
140 serde::Serialize,
141 serde::Deserialize,
142 Debug,
143 Clone,
144 PartialEq,
145 Eq,
146 jacquard_derive::IntoStatic
147)]
148#[serde(rename_all = "camelCase")]
149pub struct ModTool<'a> {
150 #[serde(skip_serializing_if = "std::option::Option::is_none")]
152 #[serde(borrow)]
153 pub meta: std::option::Option<jacquard_common::types::value::Data<'a>>,
154 #[serde(borrow)]
156 pub name: jacquard_common::CowStr<'a>,
157}