Guanghu Domestic Migration d1e47f4565
Some checks are pending
自动更新代码和重启 / update-and-restart (push) Waiting to run
CI检查 + 自动部署 / check (push) Waiting to run
CI检查 + 自动部署 / deploy (push) Blocked by required conditions
重启聊天服务 / restart (push) Waiting to run
chore: import sanitized domestic snapshot for REPO-002
Source snapshot: ca48d3ddf926d79aa138306164169baf764bb829
2026-07-17 15:54:41 +08:00

62 lines
1.5 KiB
JavaScript

const express = require('express');
const axios = require('axios');
const router = express.Router();
const NOTION_TOKEN = process.env.NOTION_TOKEN;
const NOTION_VERSION = '2022-06-28';
const BASE_URL = 'https://api.notion.com/v1';
const headers = () => ({
'Authorization': 'Bearer ' + NOTION_TOKEN,
'Content-Type': 'application/json',
'Notion-Version': NOTION_VERSION
});
router.get('/test', (req, res) => {
res.json({
status: 'ok',
message: 'Notion 路由正常',
token_configured: !!NOTION_TOKEN
});
});
router.get('/database/:id', async (req, res) => {
try {
const response = await axios.post(
BASE_URL + '/databases/' + req.params.id + '/query',
{},
{ headers: headers() }
);
res.json(response.data);
} catch (err) {
res.status(500).json({ error: err.message, detail: err.response ? err.response.data : null });
}
});
router.get('/page/:id', async (req, res) => {
try {
const response = await axios.get(
BASE_URL + '/pages/' + req.params.id,
{ headers: headers() }
);
res.json(response.data);
} catch (err) {
res.status(500).json({ error: err.message, detail: err.response ? err.response.data : null });
}
});
router.post('/page', async (req, res) => {
try {
const response = await axios.post(
BASE_URL + '/pages',
req.body,
{ headers: headers() }
);
res.json(response.data);
} catch (err) {
res.status(500).json({ error: err.message, detail: err.response ? err.response.data : null });
}
});
module.exports = router;