Files
THE-TIP-TOP/backend/src/routes/game.routes.js
Emma781227 2201446ee6 changement
2026-09-14 22:30:40 +02:00

57 lines
1.6 KiB
JavaScript

const express = require("express");
const { participate, myGains, getPublicGameWindow } = require("../controllers/game.controller");
const authMiddleware = require("../middlewares/auth.middleware");
const roleMiddleware = require("../middlewares/role.middleware");
const validate = require("../middlewares/validate.middleware");
const { participateSchema } = require("../validations/game.validation");
const router = express.Router();
/**
* @swagger
* /api/game/participate:
* post:
* summary: Participer au jeu concours
* tags:
* - Game
* security:
* - bearerAuth: []
* responses:
* 201:
* description: Participation enregistrée
*/
// Le jeu est reserve aux clients : un ADMIN ou un EMPLOYEE qui joue
// consommerait des tickets et fausserait les statistiques.
router.post("/participate", authMiddleware, roleMiddleware("CLIENT"), validate(participateSchema), participate);
/**
* @swagger
* /api/game/my-gains:
* get:
* summary: Historique des gains du participant
* tags:
* - Game
* security:
* - bearerAuth: []
* responses:
* 200:
* description: Liste des gains
*/
router.get("/my-gains", authMiddleware, roleMiddleware("CLIENT"), myGains);
/**
* @swagger
* /api/game/window:
* get:
* summary: Dates publiques du jeu-concours (début, fin des participations, fin des retraits)
* tags:
* - Game
* responses:
* 200:
* description: Phase et échéances courantes ; dates nulles si le jeu n'est pas configuré
*/
router.get("/window", getPublicGameWindow);
module.exports = router;