Rabu, 27 Maret 2019

contoh cara menggunakan hooks dan validasi pada sequelize

untuk validasi yag lebih lengkap kalian bisa menemukannya di halaman sequelize validasi dokumentasi
dan berikut ini adalah salah satu contoh menggunakan validasi bawaan sequelize dan validasi costume  dan bawaan sequelize:
'use strict';
const { Op } = require('sequelize')
module.exports = (sequelize, DataTypes) => {
  const Teacher = sequelize.define('Teacher', {
    first_name: DataTypes.STRING,
    last_name: DataTypes.STRING,
    email : {
      type:DataTypes.STRING,
      validate:{
        isEmail:{
          args:true,
          msg:'format email harus sesuai'
        },
        isUnique(){
          return Teacher.findAll({
            where:{
              email:this.email,
              [Op.ne] : {id:this.id}
              
            }
          })
          .then(found=>{
            if(found.length !== 0){
              throw new Error('email sudah terdaftar')
            }
          })
          .catch(err=>{
            throw new Error(err)
          })
        }
      }
    },
    SubjectId: DataTypes.INTEGER
  }, {});


``


dan untuk hooks kalian bisa menemukannya di sini :
dokumentasi hooks
dan contoh penggunaannya adalah :
``
'use strict';
module.exports = (sequelize, DataTypes) => {
  const Subject = sequelize.define('Subject', {
    subject_name: DataTypes.STRING
  }, {
    hooks: {
      beforeDestroy(subject, options) {
        return sequelize.models.Teacher.update({
            SubjectId: null
          }, {
            where: {
              SubjectId: this.id
            }
          })
      }
    }
  });
  Subject.associate = function (models) {
    Subject.hasMany(models.Teacher)
    Subject.belongsToMany(models.Student, {
      through: models.StudentSubject
    })
    // associations can be defined here
  };
  return Subject;
};


Tidak ada komentar:

Posting Komentar