notion_sdk/pages/
api.rs

1use crate::database::id::PropertyId;
2use crate::pages::id::PageId;
3use crate::pages::{CreatePage, UpdatePage};
4use crate::{Error, NotionApi, Object};
5
6const ROUTER: &str = "pages";
7
8impl NotionApi {
9    /// Retrieve a user
10    pub async fn pages_retrieve(&self, id: PageId) -> Result<Object, Error> {
11        let u = format!("{}/{}/{}", self.base_path, ROUTER, id);
12        self.request(self.client.get(u)).await
13    }
14    pub async fn pages_property(
15        &self,
16        id: PageId,
17        property_id: PropertyId,
18    ) -> Result<Object, Error> {
19        let u = format!(
20            "{}/{}/{}/properties/{}",
21            self.base_path, ROUTER, id, property_id
22        );
23        self.request(self.client.get(u)).await
24    }
25    pub async fn pages_create(&self, page: CreatePage) -> Result<Object, Error> {
26        let u = format!("{}/{}/", self.base_path, ROUTER);
27        self.request(self.client.post(u).json(&page)).await
28    }
29    pub async fn pages_update(&self, id: PageId, page: UpdatePage) -> Result<Object, Error> {
30        let u = format!("{}/{}/{}", self.base_path, ROUTER, id);
31        self.request(self.client.patch(u).json(&page)).await
32    }
33    pub async fn pages_delete(&self, id: PageId) -> Result<Object, Error> {
34        let u = format!("{}/blocks/{}", self.base_path, id);
35        self.request(self.client.delete(u)).await
36    }
37}