wikis.ts (973B)
1 import { ERR_INTERNAL, ERR_INVALID_REQUEST, ERR_METHOD_NOT_ALLOWED } from '@/lib/apierror' 2 import { listWikiByOwnerId, listWikiLinksByOwnerId } from '@/lib/models/wiki_info' 3 import { NextApiRequest, NextApiResponse } from 'next' 4 5 export default async function handler (req: NextApiRequest, res: NextApiResponse) { 6 if (req.method !== 'GET') { 7 res.status(405).json(ERR_METHOD_NOT_ALLOWED) 8 return 9 } 10 11 // 쿼리에서 ID 파싱 12 let id: number | typeof req.query.id = req.query.id 13 if (typeof id !== 'string') { 14 res.status(400).json(ERR_INVALID_REQUEST) 15 return 16 } 17 18 try { 19 id = parseInt(id, 10) 20 } catch (e) { 21 res.status(400).json(ERR_INVALID_REQUEST) 22 return 23 } 24 25 try { 26 const out = req.query.format === 'links' 27 ? await listWikiLinksByOwnerId([id]) 28 : await listWikiByOwnerId([id]) 29 30 res.status(200).json(out) 31 } catch (e) { 32 console.error('listWiki: database error:', e) 33 res.status(500).json(ERR_INTERNAL) 34 } 35 }