polysignal_hackaton / backend /src /positions /positions.routes.js
blackmistcode's picture
Add files using upload-large-folder tool
dfe11f8 verified
Raw
History Blame Contribute Delete
1.11 kB
/**
* Rutas REST del modulo de posiciones (simulador virtual).
*
* Endpoints (montados en /api/v1/positions):
* POST / → abrir posicion (validate openBody).
* GET / → listar posiciones (validate listQuery en query).
* DELETE /:id → cerrar posicion (validate idParam en params).
*
* Todas las rutas requieren autenticacion JWT (router.use(requireAuth)).
*/
import { Router } from 'express';
import { validate } from '../middlewares/validate.js';
import { requireAuth } from '../middlewares/requireAuth.js';
import { positionsController } from './positions.controller.js';
import { openBody, idParam, listQuery } from './positions.validators.js';
const router = Router();
// Endpoint publico (sugerencia de sizing) - no requiere autenticacion
router.get('/suggestion/:marketId', positionsController.suggest);
router.use(requireAuth);
router.post('/', validate(openBody), positionsController.open);
router.get('/', validate(listQuery, 'query'), positionsController.list);
router.delete('/:id', validate(idParam, 'params'), positionsController.close);
export default router;