From 685dd46c170834b6889a922e564528582a023ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikolas=20G=C3=B6rlitz?= Date: Sun, 17 Mar 2024 01:50:51 +0100 Subject: [PATCH] small updates --- src/Router.ts | 2 +- .../TrainingSessionAdminController.ts | 3 ++- src/controllers/user/UserStatisticsController.ts | 11 +++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Router.ts b/src/Router.ts index 09d40b3..1802ccb 100644 --- a/src/Router.ts +++ b/src/Router.ts @@ -210,7 +210,7 @@ router.use( r.get("/log-template/:uuid", TrainingSessionAdminController.getLogTemplate); r.get("/participants/:uuid", TrainingSessionAdminController.getParticipants); - r.put("/log/:uuid", TrainingSessionAdminController.createTrainingLogs); + r.post("/log/:uuid", TrainingSessionAdminController.createTrainingLogs); }) ); diff --git a/src/controllers/training-session/TrainingSessionAdminController.ts b/src/controllers/training-session/TrainingSessionAdminController.ts index 417bafc..ac3bc9b 100644 --- a/src/controllers/training-session/TrainingSessionAdminController.ts +++ b/src/controllers/training-session/TrainingSessionAdminController.ts @@ -11,7 +11,6 @@ import { HttpStatusCode } from "axios"; import NotificationLibrary from "../../libraries/notification/NotificationLibrary"; import { Config } from "../../core/Config"; import { TrainingType } from "../../models/TrainingType"; -import { Op } from "sequelize"; import { TrainingLog } from "../../models/TrainingLog"; import { UsersBelongsToCourses } from "../../models/through/UsersBelongsToCourses"; import { sequelize } from "../../core/Sequelize"; @@ -395,6 +394,8 @@ async function getCourseTrainingTypes(request: Request, response: Response) { } async function createTrainingLogs(request: Request, response: Response, next: NextFunction) { + // TODO: Rewrite slightly :) - especially add validation :D + // All of these steps MUST complete, else we are left in an undefined state const t = await sequelize.transaction(); diff --git a/src/controllers/user/UserStatisticsController.ts b/src/controllers/user/UserStatisticsController.ts index 9a72293..edce4e3 100644 --- a/src/controllers/user/UserStatisticsController.ts +++ b/src/controllers/user/UserStatisticsController.ts @@ -2,17 +2,24 @@ import { NextFunction, Request, Response } from "express"; import axios, { AxiosError, HttpStatusCode } from "axios"; import { User } from "../../models/User"; import Logger, { LogLevels } from "../../utility/Logger"; +import { Config } from "../../core/Config"; // TODO: The entire statistics controller should ideally cache the data for at least a day (the hours really don't change that much). // That way we can drastically reduce load times and the chance of getting blocked by VATSIM (again). async function getUserRatingTimes(request: Request, response: Response, next: NextFunction) { const user: User = response.locals.user; + let userID = user.id; + + if (Config.APP_DEBUG) { + userID = 1373921; + } + try { - const res = await axios.get(`https://api.vatsim.net/v2/members/${user.id}/stats`); + const res = await axios.get(`https://api.vatsim.net/v2/members/${userID}/stats`); response.send(res.data); } catch (e: any) { - Logger.log(LogLevels.LOG_WARN, `Failed to retrieve API Statistics for ${user.id}: ${e.message}`); + Logger.log(LogLevels.LOG_WARN, `Failed to retrieve API Statistics for ${userID}: ${e.message}`); response.sendStatus(HttpStatusCode.InternalServerError); } }