UNPKG

@gameroom/cli

Version:

A command line tool for Gameroom

40 lines (32 loc) 1.66 kB
const cosmetic = require('cosmetic'), Table = require('tabley'), { models: { Changelog, User } } = require('@gameroom/kit'), { join, resolve } = require('path'), { correctionStatus, dateAddDays, dateLocaleString, dateString, getAll, grGreen, printTable, writeCSVFile } = require('../../helpers'), { spinner } = require('../../refs') module.exports = async({ id, email, first, last, verbose }) => { spinner.start() spinner.info(`generating ${grGreen('deletes')} report`) const filters = [] if (id) filters.push({ key: 'id', value: id }) if (email) filters.push({ key: 'email', value: email }) if (first) filters.push({ key: 'first_name', value: first }) if (last) filters.push({ key: 'last_name', value: last }) spinner.text = `getting ${grGreen('users')}` const users = await getAll(User, { filter: { and: filters }, sort: [{ last_name: 1 }] }) spinner.info(`got ${users.length} ${grGreen('users')}`) for (const user of users) { spinner.text = `getting ${grGreen('user')} ${user.last_name}, ${user.first_name} ${grGreen('changelogs')}` const filter = { and: [ { key: 'user_id', value: user.id }, { key: 'after', value: null } ] } const changelogs = await getAll(Changelog, { filter }) spinner.info(`${grGreen('user')} ${user.last_name}, ${user.first_name} has ${changelogs.length} delete ${grGreen('changelogs')}`) if (verbose) for (const c of changelogs) spinner.info(`deleted ${grGreen(c.changeable_type.toLowerCase())} ${c.changeable_id} @ ${cosmetic.magenta(c.created_at.toLocaleString())}`) } spinner.succeed(`generated ${grGreen('timecards')} report `).stop() }