Files
benchcoach/src/routes/opponent.js
2024-03-04 13:32:25 -06:00

38 lines
1.5 KiB
JavaScript

const express = require("express");
const opponentsController = require("../controllers/opponent");
const {loadTeam} = require("./team")
var router = express.Router();
const multer = require("multer");
const upload = multer()
const { doubleCsrfProtection } = require('../middlewares/csrf');
// Middleware
const loadOpponent = (req,res,next) => {
const {opponent_id} = req.params;
const {team} = req
req.promises.push(
teamsnap.loadOpponents(team.id, (err, opponents)=>{
if (err) console.log("error in route/opponent.js", err);
}).then(opponents => {req.opponent=opponents.find(o=>o.id==opponent_id);})
)
req.promises.push(
teamsnap.loadTeamMedia(team.id, (err, team_media)=>{
if (err) console.log("error in route/opponent.js", err);
})
.then(team_media => {
req.opponent_logo = team_media.find(tm=>tm.description==`opponent-logo-${opponent_id}.png`)
}
)
)
next();
}
router.use("/:team_id([0-9]+)/opponent/:opponent_id([0-9]+)", loadOpponent)
router.get("/:team_id([0-9]+)/opponents", opponentsController.getOpponents);
router.get("/:team_id([0-9]+)/opponent/:opponent_id([0-9]+)", doubleCsrfProtection, opponentsController.getOpponent);
router.post("/:team_id([0-9]+)/opponent/:opponent_id([0-9]+)/upload_logo", upload.single('file'), doubleCsrfProtection, opponentsController.postOpponentLogo);
// router.get("/:team_id([0-9]+)/opponent/:opponent_id/logo", ensureLoggedIn, opponentsController.getOpponentLogo);
module.exports = {router}