38 lines
1.5 KiB
JavaScript
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} |