diff --git a/server/app/Commands/DeleteMatch.js b/server/app/Commands/DeleteMatch.js new file mode 100644 index 0000000..1baf53e --- /dev/null +++ b/server/app/Commands/DeleteMatch.js @@ -0,0 +1,33 @@ +'use strict' + +const { Command } = require('@adonisjs/ace') +const Database = use('Database') +const Match = use('App/Models/Match') + +class DeleteMatch extends Command { + static get signature() { + return ` + delete:match + { field : Delete row if entered field is null } + ` + } + + static get description() { + return 'Delete matches from db with a condition' + } + + async handle(args, options) { + console.time('DeleteMatches') + const nbMatchesBefore = await Match.count() + const matches = await Match.all() + for (const match of matches.toJSON()) { + await Match.where('_id', match._id).where(args.field, null).delete() + } + const nbMatchesAfter = await Match.count() + Database.close() + console.timeEnd('DeleteMatches') + this.success(`${this.icon('success')} Delete Matches completed: ${nbMatchesBefore - nbMatchesAfter} matche(s) deleted`) + } +} + +module.exports = DeleteMatch diff --git a/server/start/app.js b/server/start/app.js index b20f92f..ce57666 100644 --- a/server/start/app.js +++ b/server/start/app.js @@ -57,6 +57,8 @@ const aliases = {} | Here you store ace commands for your package | */ -const commands = [] +const commands = [ + 'App/Commands/DeleteMatch', +] module.exports = { providers, aceProviders, aliases, commands }