Files
WMC-Project-5/backend_splatournament_manager/src/app.ts

69 lines
2.1 KiB
TypeScript

import express, {Request, Response} from 'express';
import bodyParser from 'body-parser';
import 'dotenv/config';
import {TournamentService} from './services/tournament-service';
import router from './middlewares/logger';
const tournamentService = new TournamentService();
const port = process.env.PORT || 3000;
const app = express();
app.use(bodyParser.json());
app.use(router);
app.get('/tournaments', async (req: Request, res: Response) => {
console.log(req.params)
if (!req.params.id) {
const tournaments = await tournamentService.getAllTournaments();
console.log(tournaments)
return res.send(tournaments);
}
const tournament = await tournamentService.getTournamentById(+req.params.id);
if (!tournament) {
return res.status(404).send({error: 'Tournament not found'});
}
res.send(tournament);
});
app.post('/tournaments', async (req: Request, res: Response) => {
console.log("post");
try {
await tournamentService.addTournament(req.body);
res.status(200).send();
}catch (err){
console.log(err);
res.status(404).send();
}
});
app.put('/tournaments', async (req: Request, res: Response) => {
if (!req.query.id) {
return res.status(400).send({error: 'Missing id parameter'});
}
try {
const success = await tournamentService.updateTournament(+req.query.id!, req.body);
} catch (err) {
return res.status(400).send({error: 'Failed to update Tournament'});
}
res.status(200).send({message: 'Tournament updated successfully'});
});
app.delete('/tournaments', async (req: Request, res: Response) => {
if (!req.query.id) {
return res.status(400).send({error: 'Missing id parameter'});
}
try {
const success = await tournamentService.deleteTournament(+req.query.id!);
} catch (err) {
return res.status(400).send({error: 'Failed to delete Tournament'});
}
res.status(200).send({message: 'Tournament deleted successfully'});
});
app.listen(port, () => {
console.log(`server started on port ${port}`);
});