1 import { each } from 'async'
3 // ---------------------------------------------------------------------------
5 module.exports = function (sequelize, DataTypes) {
6 const Tag = sequelize.define('Tag',
9 type: DataTypes.STRING,
32 // ---------------------------------------------------------------------------
34 function associate (models) {
35 this.belongsToMany(models.Video, {
37 through: models.VideoTag,
42 function findOrCreateTags (tags, transaction, callback) {
44 callback = transaction
49 const tagInstances = []
51 each(tags, function (tag, callbackEach) {
61 if (transaction) query.transaction = transaction
63 self.findOrCreate(query).asCallback(function (err, res) {
64 if (err) return callbackEach(err)
66 // res = [ tag, isCreated ]
68 tagInstances.push(tag)
72 return callback(err, tagInstances)