import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' import CommandsRun from "App/Models/CommandsRun"; import BuildsRun from "App/Models/BuildsRun"; import { fetchDailyStatistics, fetchMonthlyStatistics, fetchStatistics, fetchWeeklyStatistics, NOW } from "App/Utils/StatsUtils"; export default class StatsController { public async index ({ response }: HttpContextContract) { const daily = await fetchDailyStatistics() const weekly = await fetchWeeklyStatistics() const monthly = await fetchMonthlyStatistics() const total = await fetchStatistics() return response.status(200).send({ daily, weekly, monthly, total: { development_time: total.development_time, commands_run: total.commands_ran, builds_run: total.builds_ran, } }) } public async incrementCommandCount({ response }: HttpContextContract) { const current_commands = await CommandsRun.firstOrCreate( { date: NOW }, { date: NOW, commands: 0 } ) current_commands.commands++ await current_commands.save() return response.status(200).send({ message: 'Commands Count successfully incremented!' }) } public async incrementBuildCount({ response }: HttpContextContract) { const current_builds = await BuildsRun.firstOrCreate( { date: NOW }, { date: NOW, builds: 0 } ) current_builds.builds++ await current_builds.save() return response.status(200).send({ message: 'Builds Count successfully incremented!' }) } }