Files
benchcoach/src/routes/opponent.js

42 lines
1.6 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');
const {teamsnapCallback} = require('../lib/utils')
// Middleware
const loadOpponent = (req,res,next) => {
const {opponent_id} = req.params;
const {team} = req
req.promises.push(
teamsnap.loadOpponents(
team.id,
(err, opponents) => {teamsnapCallback(err, opponents, {req, source:"loadOpponent", method:'loadOpponent'})}
)
.then(opponents => {req.opponent=opponents.find(o=>o.id==opponent_id);})
)
req.promises.push(
teamsnap.loadTeamMedia(
team.id,
(err, opponents) => {teamsnapCallback(err, opponents, {req, source:"loadOpponent", method:'teamMedia'})}
)
.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}