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}