diff options
author | 2021-05-14 08:26:38 -0700 | |
---|---|---|
committer | 2021-05-14 08:26:38 -0700 | |
commit | d11ac3c9ba709eb4a0691224601088252e49b61d (patch) | |
tree | 41b417b2803679e17fad311f49b8be9d30a5ccde | |
parent | 3db26f295de9e2805a2c1c6a083566da0f4e2b07 (diff) | |
download | notion-d11ac3c9ba709eb4a0691224601088252e49b61d.tar.gz notion-d11ac3c9ba709eb4a0691224601088252e49b61d.tar.zst notion-d11ac3c9ba709eb4a0691224601088252e49b61d.zip |
paging
-rw-r--r-- | src/models.rs | 1 | ||||
-rw-r--r-- | src/models/paging.rs | 13 | ||||
-rw-r--r-- | src/models/search.rs | 11 |
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)] |