Monorepo containing core modules of Zeichen.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

37 lignes
946 B

  1. import ORM, { DatabaseKind } from '../../utilities/ORM'
  2. import * as Service from '../../services/entities/Folder'
  3. import Model from '../../models/Folder'
  4. export default async (req, res) => {
  5. const orm = new ORM({
  6. kind: process.env.DATABASE_DIALECT as DatabaseKind,
  7. url: process.env.DATABASE_URL,
  8. })
  9. const repository = orm.getRepository(Model)
  10. const methodHandlers = {
  11. 'GET': Service.getMultiple(repository),
  12. }
  13. const { [req.method as keyof typeof methodHandlers]: handler = null } = methodHandlers
  14. if (handler === null) {
  15. res.statusCode = 415
  16. res.json({ message: 'Method not allowed.' })
  17. return
  18. }
  19. try {
  20. const { status, data, } = await handler(req.query)
  21. res.statusCode = status
  22. res.json(data)
  23. } catch (err) {
  24. console.error(err)
  25. const { status, data, } = err
  26. res.statusCode = status
  27. if (data && status !== 204) {
  28. res.json(data)
  29. return
  30. }
  31. res.end()
  32. }
  33. }