Skip to content
Snippets Groups Projects
Commit cf187db7 authored by Fredrik Fonn Hansen's avatar Fredrik Fonn Hansen :8ball:
Browse files

Backend highscore fix

parent db45f25f
No related branches found
No related tags found
1 merge request!60Backend highscore fix
import { Request, Response } from 'express';
import { Lobby } from '../models/Lobby';
import { GameHandler } from '../gameHandler';
import { getUserById } from '../functions/getUserById';
import { User } from '../../types/User';
import admin from '../functions/firebaseAdmin';
import { IGame } from '../interfaces/IGame';
import { getTopUsers } from '../functions/firebaseCache';
const gameHandler = GameHandler.getInstance();
export const top10 = async (req: Request, res: Response): Promise<void> => {
const topUsers = await getTopUsers();
if (topUsers === null) {
res.status(204).send('No highscores found');
if (topUsers) {
res.status(200).send(topUsers);
} else {
const users = topUsers.docs.map(
(doc: any) =>
({
id: doc.id,
...doc.data(),
} as User)
);
res.status(200).send(users);
res.status(204).send('No highscores found');
}
};
......@@ -58,17 +58,13 @@ export async function getUsersIds(): Promise<any> {
*
* @returns a list of users
*/
export async function getTopUsers(): Promise<any> {
export async function getTopUsers(): Promise<User[] | null> {
const usersRef: CollectionReference = admin.firestore().collection('users');
const querySnapshot: Query = usersRef.orderBy('highscore', 'desc').limit(10);
const cacheKey = 'topUsers';
const responseMapper = (firestoreResponse: QueryDocumentSnapshot[]) => {
return firestoreResponse.map((doc) => {
return {
id: doc.id,
username: doc.data().username,
highscore: doc.data().highscore,
};
return { ...doc.data } as User;
});
};
return retrieveFromCache(querySnapshot, queryCache, cacheKey, responseMapper);
......
......@@ -107,7 +107,7 @@ router.post('/:gameid/move', gameController.move);
/**
* @swagger
* /game/{id}/currentTurn:
* /game/{gameId}/gameState:
* post:
* tags: [Game]
* summary: Check current turn.
......@@ -171,7 +171,7 @@ router.post('/:gameid/move', gameController.move);
* tankType:
* type: string
*/
router.get('/:gameid/currentTurn', gameController.currentTurn);
router.get('/:gameid/gameState', gameController.currentTurn);
/**
* @swagger
......
......@@ -5,7 +5,7 @@ const router = express.Router();
/**
* @swagger
* /lobby/{id}/leave:
* /lobby/{lobbyId}/leave:
* post:
* tags: [Lobby]
* summary: Leaves a lobby.
......@@ -30,7 +30,7 @@ router.post('/:id/leave', lobbyController.leaveLobby);
/**
* @swagger
* /lobby/{id}/join:
* /lobby/{lobbyId}/join:
* post:
* tags: [Lobby]
* summary: Joins a lobby.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment