contentstack_api_client_rs/client/
params.rs1use std::collections::HashMap;
2
3use serde::Serialize;
4use serde_json::Value;
5
6pub type Query = HashMap<String, Value>;
22
23#[derive(Debug, Default, Clone)]
25pub struct GetManyParams {
26 pub query: Option<Query>,
28 pub limit: Option<u32>,
30 pub skip: Option<u32>,
32 pub asc: Option<String>,
34 pub desc: Option<String>,
36 pub include_count: Option<bool>,
38 pub include_publish_details: Option<bool>,
40 pub include_metadata: Option<bool>,
42 pub locale: Option<String>,
44 pub environment: Option<String>,
46}
47
48#[derive(Serialize, Default)]
49pub(crate) struct SerializedGetManyParams {
50 pub query: Option<String>,
51 pub limit: Option<u32>,
52 pub skip: Option<u32>,
53 pub asc: Option<String>,
54 pub desc: Option<String>,
55 #[serde(skip_serializing_if = "Option::is_none")]
56 pub include_count: Option<bool>,
57 #[serde(skip_serializing_if = "Option::is_none")]
58 pub include_publish_details: Option<bool>,
59 #[serde(skip_serializing_if = "Option::is_none")]
60 pub include_metadata: Option<bool>,
61 pub locale: Option<String>,
62 pub environment: Option<String>,
63}
64
65impl From<GetManyParams> for SerializedGetManyParams {
66 fn from(p: GetManyParams) -> Self {
67 Self {
68 query: p
69 .query
70 .as_ref()
71 .map(|q| serde_json::to_string(q).expect("Failed to serialize query to JSON")),
72 limit: p.limit,
73 skip: p.skip,
74 asc: p.asc,
75 desc: p.desc,
76 include_count: p.include_count.filter(|&v| v),
77 include_publish_details: p.include_publish_details.filter(|&v| v),
78 include_metadata: p.include_metadata.filter(|&v| v),
79 locale: p.locale,
80 environment: p.environment,
81 }
82 }
83}
84
85#[derive(Debug, Default, Clone)]
87pub struct GetOneParams {
88 pub query: Option<Query>,
90 pub include_publish_details: Option<bool>,
92 pub include_metadata: Option<bool>,
94 pub locale: Option<String>,
96 pub environment: Option<String>,
98}
99
100#[derive(Serialize, Default)]
101pub(crate) struct SerializedGetOneParams {
102 pub query: Option<String>,
103 #[serde(skip_serializing_if = "Option::is_none")]
104 pub include_publish_details: Option<bool>,
105 #[serde(skip_serializing_if = "Option::is_none")]
106 pub include_metadata: Option<bool>,
107 pub locale: Option<String>,
108 pub environment: Option<String>,
109}
110
111impl From<GetOneParams> for SerializedGetOneParams {
112 fn from(p: GetOneParams) -> Self {
113 Self {
114 query: p
115 .query
116 .as_ref()
117 .map(|q| serde_json::to_string(q).expect("Failed to serialize query to JSON")),
118 include_publish_details: p.include_publish_details.filter(|&v| v),
119 include_metadata: p.include_metadata.filter(|&v| v),
120 locale: p.locale,
121 environment: p.environment,
122 }
123 }
124}