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 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}