Skip to content
Snippets Groups Projects

btn añadir/quitar pokemon en caja o equipo, json entrenadores i intentando...

Merged Saim Butt Butt requested to merge 3-crud-admin into dev
11 files
+ 497
51
Compare changes
  • Side-by-side
  • Inline

Files

@@ -12,50 +12,49 @@ const pokemonsFilePath = path.join(__dirname, '..', '..', 'data', 'pokemons.json
// Crear nuevo Pokémon
export const createPokemon = async (req, res) => {
try {
const { nombre, nivel, tipo_1, tipo_2, ataques, evoluciones } = req.body;
// Validación para evitar que tipo_2 sea igual a tipo_1
if (tipo_2 && tipo_1 === tipo_2) {
return res.status(400).json({ message: 'tipo_2 no puede ser igual a tipo_1' });
}
const lastPokemon = await Pokemon.findOne().sort({ id: -1 }).exec();
const newId = lastPokemon ? lastPokemon.id + 1 : 1;
const newPokemonData = {
id: newId,
nombre,
nivel,
tipo_1,
ataques: ataques || [],
evoluciones: evoluciones || []
};
if (tipo_2) newPokemonData.tipo_2 = tipo_2;
try {
const { nombre, nivel, tipo_1, tipo_2, ataques, evoluciones } = req.body;
const pokemon = new Pokemon(newPokemonData);
await pokemon.save();
res.json(pokemon);
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Error al crear el Pokémon' });
}
// Obtener el último ID existente
const lastPokemon = await Pokemon.findOne().sort({ id: -1 }).exec();
const newId = lastPokemon ? lastPokemon.id + 1 : 1;
// Crear el nuevo Pokémon
const newPokemonData = {
id: newId,
nombre,
nivel,
tipo_1,
tipo_2: tipo_2 || null,
ataques: ataques || [],
evoluciones: evoluciones || []
};
const pokemon = new Pokemon(newPokemonData);
await pokemon.save();
console.log("Nuevo Pokémon guardado:", pokemon);
res.status(201).json(pokemon);
} catch (error) {
console.error("Error al añadir Pokémon:", error.message);
res.status(500).json({ error: 'Error al guardar el Pokémon en la base de datos.' });
}
};
// Editar Pokémon
export const editPokemon = async (req, res) => {
const { id } = req.params;
const { nombre, nivel, tipo_1, tipo_2, ataques, evoluciones } = req.body;
const { id } = req.params; // Aquí se espera _id
try {
const pokemon = await Pokemon.findOne({ id: Number(id) });
const pokemon = await Pokemon.findById(id); // Cambio aquí
if (!pokemon) {
return res.status(404).json({ message: 'Pokémon no encontrado' });
}
// Validación para evitar que tipo_2 sea igual a tipo_1
// Validación
const { nombre, nivel, tipo_1, tipo_2, ataques, evoluciones } = req.body;
if (tipo_2 && tipo_1 === tipo_2) {
return res.status(400).json({ message: 'tipo_2 no puede ser igual a tipo_1' });
}
@@ -63,13 +62,12 @@ export const editPokemon = async (req, res) => {
pokemon.nombre = nombre;
pokemon.nivel = nivel;
pokemon.tipo_1 = tipo_1;
pokemon.tipo_2 = tipo_2 || null; // Asignar null si no hay tipo_2
pokemon.tipo_2 = tipo_2 || null;
pokemon.ataques = ataques || [];
pokemon.evoluciones = evoluciones || [];
await pokemon.save();
res.json(pokemon);
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Error al editar el Pokémon' });
@@ -81,18 +79,19 @@ export const deletePokemon = async (req, res) => {
const { id } = req.params;
try {
const pokemon = await Pokemon.findOneAndDelete({ id: Number(id) });
const pokemon = await Pokemon.findByIdAndDelete(id); // Usamos _id
if (!pokemon) {
return res.status(404).json({ message: 'Pokémon no encontrado' });
}
res.json(pokemon);
} catch (error) {
console.error(error);
console.error('Error al eliminar el Pokémon:', error);
res.status(500).json({ message: 'Error al eliminar el Pokémon' });
}
};
// Listar todos los Pokémon
export const listPokemons = async (req, res) => {
try {
Loading