picture.js 563 B

12345678910111213141516171819202122232425262728
  1. let sharp = require('sharp')
  2. module.exports = (sequelize, DataTypes) => {
  3. let ProfilePicture = sequelize.define('ProfilePicture', {
  4. file: DataTypes.BLOB('long'),
  5. mimetype: DataTypes.STRING
  6. }, {
  7. classMethods: {
  8. associate (models) {
  9. ProfilePicture.belongsTo(models.User)
  10. }
  11. },
  12. hooks: {
  13. beforeUpdate (profilePicture, options, cb) {
  14. sharp(profilePicture.file)
  15. .resize(400, 400)
  16. .max()
  17. .toBuffer((err, buff) => {
  18. profilePicture.file = buff
  19. cb(err || null, options)
  20. })
  21. }
  22. }
  23. })
  24. return ProfilePicture
  25. }