posts.js 815 B

12345678910111213141516171819202122232425262728293031323334353637
  1. const Post = require('../models/post');
  2. class Posts {
  3. static async getAll(filter) {
  4. return Post.find(filter);
  5. }
  6. static async findById(postId) {
  7. return Post.findById(postId);
  8. }
  9. static async create(postData) {
  10. Posts.validateModel(postData);
  11. return new Post(postData).save();
  12. }
  13. static async edit(postId, postData) {
  14. Posts.validateModel(postData);
  15. await Post.updateOne({_id: postId}, postData);
  16. return this.findById(postId);
  17. }
  18. static async delete(postId) {
  19. return Post.deleteOne({_id: postId});
  20. }
  21. static validateModel(data) {
  22. const post = new Post(data);
  23. const validation = post.validateSync();
  24. if (validation)
  25. throw validation.errors
  26. }
  27. }
  28. module.exports = Posts;