3 const each = require('async/each')
5 // ---------------------------------------------------------------------------
7 module.exports = function (sequelize, DataTypes) {
8 const Tag = sequelize.define('Tag',
11 type: DataTypes.STRING,
34 // ---------------------------------------------------------------------------
36 function associate (models) {
37 this.belongsToMany(models.Video, {
39 through: models.VideoTag,
44 function findOrCreateTags (tags, transaction, callback) {
46 callback = transaction
51 const tagInstances = []
53 each(tags, function (tag, callbackEach) {
63 if (transaction) query.transaction = transaction
65 self.findOrCreate(query).asCallback(function (err, res) {
66 if (err) return callbackEach(err)
68 // res = [ tag, isCreated ]
70 tagInstances.push(tag)
74 return callback(err, tagInstances)