Skip to content

Commit 012b2c5

Browse files
committed
block route
1 parent f1a9b45 commit 012b2c5

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

src/api/notion.ts

-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ const fetchNotionData = async <T extends any>({
3838
});
3939

4040
let json = await res.json()
41-
// console.log('fetchNotionData:', json)
4241
return json;
4342
};
4443

src/index.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { tableRoute } from "./routes/table";
66
import { collectionRoute } from "./routes/collection";
77
import { userRoute } from "./routes/user";
88
import { assetRoute } from "./routes/asset";
9+
import { blockRoute } from "./routes/block";
910
import { fileRoute } from "./routes/file";
1011
import { searchRoute } from "./routes/search";
1112
import { createResponse } from "./response";
@@ -33,13 +34,14 @@ router.get("/v1/collection/:pageId", collectionRoute);
3334
router.get("/v1/user/:userId", userRoute);
3435
router.get("/v1/search", searchRoute);
3536
router.get("/v1/asset", assetRoute);
37+
router.get("/v1/block/:blockId", blockRoute);
3638
router.get("/v1/file", fileRoute);
3739

3840
router.get("*", async () =>
3941
createResponse(
4042
{
4143
error: `Route not found!`,
42-
routes: ["/v1/page/:pageId", "/v1/table/:pageId", "/v1/user/:pageId", "/v1/asset?url=[filename]&blockId=[id]"],
44+
routes: ["/v1/page/:pageId", "/v1/table/:pageId", "/v1/user/:pageId", "/v1/asset?url=[filename]&blockId=[id]", "/v1/:blockId"],
4345
},
4446
{},
4547
404

src/routes/block.ts

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { fetchBlocks } from "../api/notion";
2+
import { parsePageId } from "../api/utils";
3+
import { HandlerRequest } from "../api/types";
4+
import { createResponse } from "../response";
5+
6+
export async function blockRoute(req: HandlerRequest) {
7+
const blockId = parsePageId(req.params.blockId);
8+
9+
if (!blockId)
10+
return createResponse(
11+
{ error: 'Please supply a block ID: block?blockId=[block ID]' },
12+
{ "Content-Type": "application/json" },
13+
400
14+
);
15+
16+
const block = await fetchBlocks([blockId], req.notionToken).then(
17+
(res) => res.recordMap.block
18+
);
19+
20+
return createResponse(block);
21+
}
22+

0 commit comments

Comments
 (0)