aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jake Swenson <jake@jakeswenson.com> 2021-05-14 08:26:38 -0700
committerGravatar Jake Swenson <jake@jakeswenson.com> 2021-05-14 08:26:38 -0700
commitd11ac3c9ba709eb4a0691224601088252e49b61d (patch)
tree41b417b2803679e17fad311f49b8be9d30a5ccde
parent3db26f295de9e2805a2c1c6a083566da0f4e2b07 (diff)
downloadnotion-d11ac3c9ba709eb4a0691224601088252e49b61d.tar.gz
notion-d11ac3c9ba709eb4a0691224601088252e49b61d.tar.zst
notion-d11ac3c9ba709eb4a0691224601088252e49b61d.zip
paging
-rw-r--r--src/models.rs1
-rw-r--r--src/models/paging.rs13
-rw-r--r--src/models/search.rs11
3 files changed, 17 insertions, 8 deletions
diff --git a/src/models.rs b/src/models.rs
index 4d43a3f..291ca4f 100644
--- a/src/models.rs
+++ b/src/models.rs
@@ -1,3 +1,4 @@
+pub mod paging;
pub mod properties;
pub mod search;
pub mod text;
diff --git a/src/models/paging.rs b/src/models/paging.rs
new file mode 100644
index 0000000..31244a2
--- /dev/null
+++ b/src/models/paging.rs
@@ -0,0 +1,13 @@
+use serde::{Deserialize, Serialize};
+
+#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone)]
+#[serde(transparent)]
+pub struct PagingCursor(String);
+
+#[derive(Serialize, Debug, Eq, PartialEq, Default)]
+pub struct Paging {
+ #[serde(skip_serializing_if = "Option::is_none")]
+ start_cursor: Option<PagingCursor>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ page_size: Option<u8>,
+}
diff --git a/src/models/search.rs b/src/models/search.rs
index 32989e8..ee0bb51 100644
--- a/src/models/search.rs
+++ b/src/models/search.rs
@@ -1,3 +1,4 @@
+use crate::models::paging::Paging;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Hash, Copy, Clone)]
@@ -38,10 +39,6 @@ pub struct Filter {
property: FilterProperty,
}
-#[derive(Serialize, Deserialize, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone)]
-#[serde(transparent)]
-pub struct PagingCursor(String);
-
#[derive(Serialize, Debug, Eq, PartialEq, Default)]
pub struct SearchRequest {
#[serde(skip_serializing_if = "Option::is_none")]
@@ -50,10 +47,8 @@ pub struct SearchRequest {
sort: Option<Sort>,
#[serde(skip_serializing_if = "Option::is_none")]
filter: Option<Filter>,
- #[serde(skip_serializing_if = "Option::is_none")]
- start_cursor: Option<PagingCursor>,
- #[serde(skip_serializing_if = "Option::is_none")]
- page_size: Option<u8>,
+ #[serde(flatten)]
+ paging: Option<Paging>,
}
#[derive(Debug, Eq, PartialEq)]