notion_sdk/database/
api.rs1use crate::database::id::DatabaseId;
2use crate::database::{CreateDatabase, UpdateDatabase};
3use crate::search::DatabaseQuery;
4use crate::{Error, NotionApi, Object};
5
6const ROUTER: &str = "databases";
7
8impl NotionApi {
9 pub async fn databases_retrieve(&self, id: DatabaseId) -> 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 databases_query(
15 &self,
16 id: DatabaseId,
17 query: Option<DatabaseQuery>,
18 ) -> Result<Object, Error> {
19 let u = format!("{}/{}/{}/query", self.base_path, ROUTER, id);
20 let mut rb = self.client.post(u);
21 if let Some(q) = query {
22 rb = rb.json(&q);
23 }
24 self.request(rb).await
25 }
26 pub async fn databases_create(&self, db: CreateDatabase) -> Result<Object, Error> {
27 let u = format!("{}/{}/", self.base_path, ROUTER);
28 self.request(self.client.post(u).json(&db)).await
29 }
30 pub async fn databases_update(
31 &self,
32 id: DatabaseId,
33 db: UpdateDatabase,
34 ) -> Result<Object, Error> {
35 let u = format!("{}/{}/{}", self.base_path, ROUTER, id);
36 self.request(self.client.patch(u).json(&db)).await
37 }
38}