97 lines
2.3 KiB
JavaScript
97 lines
2.3 KiB
JavaScript
|
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
|