49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const { MongoClient, ObjectId } = require('mongodb');
|
|
require('dotenv').config();
|
|
|
|
const uri = process.env.MONGO_URI;
|
|
const client = new MongoClient(uri);
|
|
|
|
// Obtener todos los atletas
|
|
router.get('/athletes', async (req, res) => {
|
|
try {
|
|
await client.connect();
|
|
const db = client.db('swimartdb');
|
|
const athletes = await db.collection('users')
|
|
.find({ role: 'athlete' })
|
|
.project({ _id: 1, name: 1, idPersonalizado: 1 })
|
|
.toArray();
|
|
|
|
res.json(athletes);
|
|
} catch (err) {
|
|
console.error('Error al obtener atletas:', err);
|
|
res.status(500).json({ error: 'Error interno del servidor' });
|
|
}
|
|
});
|
|
|
|
// Obtener usuario por ID
|
|
router.get('/:id', async (req, res) => {
|
|
try {
|
|
await client.connect();
|
|
const db = client.db('swimartdb');
|
|
const user = await db.collection('users')
|
|
.findOne(
|
|
{ _id: new ObjectId(req.params.id) },
|
|
{ projection: { name: 1, email: 1, role: 1, language: 1 } } // ← aquí se añade
|
|
);
|
|
|
|
if (!user) {
|
|
return res.status(404).json({ error: 'Usuario no encontrado' });
|
|
}
|
|
|
|
res.json(user);
|
|
} catch (error) {
|
|
console.error('Error al obtener usuario:', error);
|
|
res.status(500).json({ error: 'Error al obtener usuario', details: error });
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|