posts_controller.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. const Posts = require('../services/posts');
  2. class PostsController {
  3. static getAll(request, h) {
  4. const filter = request.query;
  5. return Posts.getAll(filter);
  6. }
  7. static findById(request, h) {
  8. const postId = request.params.id;
  9. return Posts.findById(postId);
  10. }
  11. static async create(request, h) {
  12. try {
  13. const post = await Posts.create(request.payload);
  14. return h.response(post).code(201);
  15. } catch(errors) {
  16. return h.response(errors).code(422);
  17. }
  18. }
  19. static edit(request, h) {
  20. const postId = request.params.id;
  21. const postData = request.payload;
  22. try {
  23. return Posts.edit(postId, postData);
  24. } catch(errors) {
  25. return h.response(errors).code(422);
  26. }
  27. }
  28. static async delete(request, h) {
  29. const postId = request.params.id;
  30. await Posts.delete(postId);
  31. return h.response({}).code(204);
  32. }
  33. }
  34. module.exports = PostsController;