2023-03-04
This commit is contained in:
45
src/routes/team.js
Normal file
45
src/routes/team.js
Normal file
@@ -0,0 +1,45 @@
|
||||
const express = require("express");
|
||||
const teamsController = require("../controllers/team");
|
||||
const {loadRecentAndUpcomingEvents} = require("../middlewares/bulkload")
|
||||
const { load } = require("dotenv");
|
||||
const router = express.Router();
|
||||
const tsUtils = require('../lib/utils')
|
||||
|
||||
// Middleware
|
||||
const loadTeam = async (req,res,next) => {
|
||||
const {team_id} = req.params;
|
||||
req.team = await teamsnap.loadTeam(team_id)
|
||||
tsUtils.teamsnapLog('loadTeam', types=["team"], team_id, req);
|
||||
const bulkLoadTypes = ['teamMediaGroup', 'teamPreferences', 'member'];
|
||||
const items = tsUtils.groupTeamsnapItems(teamsnap.getAllItems(), bulkLoadTypes)
|
||||
if (req.session.current_team_id == null || req.session.current_team_id != team_id || bulkLoadTypes.filter(t=> !items[t] || items[t].length==0).length > 0){
|
||||
req.promises.push(teamsnap.bulkLoad(
|
||||
team_id,
|
||||
bulkLoadTypes,
|
||||
tsUtils.teamsnapCallback
|
||||
).then(bulkLoadItems=>{
|
||||
const items = tsUtils.groupTeamsnapItems(bulkLoadItems, bulkLoadTypes)
|
||||
tsUtils.teamsnapLog('bulkLoad', types=bulkLoadTypes, team_id, req);
|
||||
req.members = items.members;
|
||||
req.team_media_group = items.teamMediaGroups?.pop();
|
||||
req.team_preferences = items.teamsPreferences.pop();
|
||||
req.session.current_team_id = req.team.id
|
||||
}
|
||||
)
|
||||
)
|
||||
}
|
||||
else {
|
||||
req.members = items.member;
|
||||
req.team_media_group = items.teamMediaGroup.pop();
|
||||
req.team_preferences = items.teamPreferences.pop();
|
||||
}
|
||||
next();
|
||||
}
|
||||
|
||||
router.use("/:team_id([0-9]+)", loadTeam)
|
||||
|
||||
// Routes
|
||||
router.get('/user/:user_id/teams', teamsController.getTeams)
|
||||
router.get("/:team_id([0-9]+)/home", loadRecentAndUpcomingEvents, teamsController.getTeamHome);
|
||||
|
||||
module.exports = {router, loadTeam}
|
||||
Reference in New Issue
Block a user