This commit is contained in:
2020-12-19 22:03:41 +01:00
parent 584ec42309
commit 56df09e56b
4 changed files with 43 additions and 9 deletions

View File

@@ -1,16 +1,18 @@
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import {getTotalStats, getWeeklyStats, getMonthlyStats, getOtherStats} from 'App/Helpers/StatsHelper'
import DockerBuild from "App/Models/DockerBuild";
import DockerCommand from "App/Models/DockerCommand";
import {getTotalStats, getWeeklyStats, getMonthlyStats, getOtherStats, getDailyStats} from 'App/Helpers/StatsHelper'
import DockerBuild from "App/Models/DockerBuild"
import DockerCommand from "App/Models/DockerCommand"
export default class StatsController {
public async get ({response}: HttpContextContract) {
const weekly = await getWeeklyStats();
const monthly = await getMonthlyStats();
const total = await getTotalStats();
const other = await getOtherStats();
const daily = await getDailyStats()
const weekly = await getWeeklyStats()
const monthly = await getMonthlyStats()
const total = await getTotalStats()
const other = await getOtherStats()
return response.status(200).send({
daily: daily,
weekly: weekly,
monthly: monthly,
total: total,

View File

@@ -2,10 +2,22 @@ import DockerCommand from "App/Models/DockerCommand";
import axios from "axios";
import DockerBuild from "App/Models/DockerBuild";
async function getDailyStats() {
const commands = await DockerCommand.query().where('created_at', '>', new Date().getTime())
const {data} = await axios.get('https://wakatime.com/api/v1/users/arthurdanjou/stats/last_7_days')
const builds = await DockerBuild.query().where('created_at', '>', new Date().getTime())
return {
development_hours: data.data[0].grand_total.total_seconds / 60 / 60,
docker_commands_run: commands.length,
docker_build_count: builds.length,
}
}
async function getWeeklyStats() {
const commands = await DockerCommand.query().where('created_at', '>', new Date().getTime() - 1000 * 60 * 60 * 24 * 7)
const {data} = await axios.get('https://wakatime.com/api/v1/users/arthurdanjou/stats/last_7_days')
const builds = await DockerBuild.query().where('created_at', '>', new Date().getMonth() - 1)
const builds = await DockerBuild.query().where('created_at', '>', new Date().getTime() - 1000 * 60 * 60 * 24 * 7)
return {
development_hours: data.data.total_seconds / 60 / 60,
@@ -56,4 +68,4 @@ async function getOtherStats() {
}
}
export {getMonthlyStats, getTotalStats, getWeeklyStats, getOtherStats}
export {getMonthlyStats, getTotalStats, getWeeklyStats, getOtherStats, getDailyStats}

View File

@@ -0,0 +1,17 @@
import axios from "axios";
import Env from '@ioc:Adonis/Core/Env'
async function login() {
await axios.post("https://wakatime.com/oauth/token",
{
client_id: Env.get('WAKATIME_USERNAME'),
client_secret: Env.get('WAKATIME_PASSWORD')
},
{
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
}
export { login }

View File

@@ -35,6 +35,9 @@ Tasks: kernel : setTimeout or cron
Deezer songs: 1min
*/
Route.get('/source', async ({response}: HttpContextContract) => {
return response.redirect('https://github.com/arthurdanjou/artapi')
})
Route.get('/location', 'LocationsController.get')
Route.get('/location/history', 'LocationsController.history')
Route.get('/stats', 'StatsController.get')