report.js 751 B

123456789101112131415161718192021222324252627282930313233
  1. module.exports = (sequelize, DataTypes) => {
  2. let Report = sequelize.define('Report', {
  3. reason: {
  4. type: DataTypes.ENUM,
  5. values: ['spam', 'inappropriate', 'harassment'],
  6. validate: {
  7. isIn: {
  8. args: [['spam', 'inappropriate', 'harassment']],
  9. msg: "Report reason can only be one of the pre-defined options"
  10. }
  11. }
  12. }
  13. }, {
  14. classMethods: {
  15. associate (models) {
  16. Report.belongsTo(models.User, { as: 'FlaggedByUser' })
  17. Report.belongsTo(models.Post)
  18. },
  19. InvalidPostId (value) {
  20. return new sequelize.ValidationError('Post id is not valid', [
  21. new sequelize.ValidationErrorItem(
  22. 'Post id is not valid',
  23. 'Validation error',
  24. 'postId',
  25. value
  26. )
  27. ])
  28. }
  29. }
  30. })
  31. return Report
  32. }