|
- import ORM, { DatabaseKind } from '../utilities/ORM'
-
- export const collection = (Model, Service) => async (req, res) => {
- const orm = new ORM({
- kind: process.env.DATABASE_DIALECT as DatabaseKind,
- url: process.env.DATABASE_URL,
- })
- const repository = orm.getRepository(Model)
- const methodHandlers = {
- 'GET': Service.getMultiple(repository),
- }
-
- const { [req.method as keyof typeof methodHandlers]: handler = null } = methodHandlers
- if (handler === null) {
- res.statusCode = 415
- res.json({ message: 'Method not allowed.' })
- return
- }
-
- try {
- const { status, data, } = await handler(req.query)
- res.statusCode = status
- res.json(data)
- } catch (err) {
- const { status, data, } = err
- res.statusCode = status
- res.json(data)
- }
- }
-
- export const item = (Model, Service) => async (req, res) => {
- const orm = new ORM({
- kind: process.env.DATABASE_DIALECT as DatabaseKind,
- url: process.env.DATABASE_URL,
- })
- const repository = orm.getRepository(Model)
- const methodHandlers = {
- 'GET': Service.getSingle(repository),
- 'PUT': Service.save(repository)(req.body),
- }
-
- const { [req.method as keyof typeof methodHandlers]: handler = null } = methodHandlers
- if (handler === null) {
- res.statusCode = 415
- res.json({ message: 'Method not allowed.' })
- return
- }
-
- const { id } = req.query
- try {
- const { status, data, } = await handler(id)
- res.statusCode = status
- res.json(data)
- } catch (err) {
- console.log('ERROR', err)
- const { status, data, } = err
- res.statusCode = status
- res.json(data)
- }
- }
|