gancio-upstream/server/helpers/place.js

23 lines
715 B
JavaScript
Raw Normal View History

const Place = require('../api/models/place')
const Event = require('../api/models/event')
const Sequelize = require('sequelize')
const log = require('../log')
module.exports = {
// remove places not related to any events
async _cleanUnused () {
const places = await Place.findAll({
include: [{ model: Event, as: 'events', required: false, attributes: [] }],
group: ['place.id'],
having: Sequelize.where(Sequelize.fn('COUNT', Sequelize.col('events.id')), '=', 0)
})
if (!places.length) { return }
log.debug(`Remove ${places.length} unrelated places`)
const ids = places.map(p => p.id)
await Place.destroy({
where: { id: { [Sequelize.Op.in]: ids } }
})
}
}