class ArtistSong { constructor (models) { this.models = models } /** * Point d'entrée pour l'ajout suppression de favoris * @param {String} type * @param {Function} botSay * @param {String} from * @param {Object} currentSong * @param {Array} line */ action (type, botSay, from, currentSong, line) { let value = currentSong[type] if (line.length > 3) { value = '' for (let i = 3; i < line.length; i += 1) { value += ' ' + line[i] } value = value.replace(' ', '') } const item = { user: from, type: type, value: value } switch (line[2]) { case 'add': this.add(botSay, from, item) break case 'del': this.delete(botSay, from, item) } } /** * Fonction permettant d'ajouter un favoris * @param {Function} botSay * @param {String} from * @param {Object} item */ add (botSay, from, item) { this.models.Notifications .findOne(item) .then(notification => { if (!notification) { const newItem = new this.models.Notifications(item) newItem.save((err, res) => { if (err) { console.log('ERR:', err) } else { botSay(from, `${item.value} correctement ajouté dans vos favoris`) } }) } else { botSay(from, `${item.value} est déjà dans tes favoris, c'est moche de vieillir...`) } }) .catch(err => { console.log('ERR:', err) }) } /** * Fonction permettant de supprimer un favoris * @param {Function} botSay * @param {String} from * @param {Object} item */ delete (botSay, from, item) { this.models.Notifications .findOne(item) .then(notification => { if (notification) { notification.remove((err, res) => { if (err) { console.log('ERR:', err) } else { botSay(from, `${item.value} correctement retiré dans vos favoris`) } }) } else { botSay(from, `${item.value} n'est dpas dans tes favoris, c'est moche de vieillir...`) } }) .catch(err => { console.log('ERR:', err) }) } } module.exports = ArtistSong