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