2023-03-04
This commit is contained in:
68
src/routes/eventsheet.js
Normal file
68
src/routes/eventsheet.js
Normal file
@@ -0,0 +1,68 @@
|
||||
const express = require("express");
|
||||
const eventsSheetController = require("../controllers/eventsheet");
|
||||
const {loadEventLineup} = require("./eventlineup");
|
||||
const {loadEvent} = require("./event");
|
||||
const {loadRecentAndUpcomingEvents} = require("../middlewares/bulkload")
|
||||
const router = express.Router();
|
||||
const tsUtils = require('../lib/utils')
|
||||
const multer = require("multer");
|
||||
const upload = multer()
|
||||
|
||||
|
||||
// Middleware
|
||||
const loadEvents = async (req,res,next) => {
|
||||
const {team_id, event_id} = req.params
|
||||
req.timeline = {}
|
||||
await Promise.all(req.promises)
|
||||
const {recent_events, upcoming_events} = req
|
||||
const eventIds = [...recent_events.map(e=>e.id), event_id, ...upcoming_events.map(e=>e.id)]
|
||||
// if (!req.event_lineup){
|
||||
bulkLoadTypes = ['event','eventLineup', 'eventLineupEntry']
|
||||
req.promises.push(teamsnap.bulkLoad({teamId: team_id, types: bulkLoadTypes, scopeTo:'event', event__id:eventIds}, null, tsUtils.teamsnapCallback)
|
||||
.then(items => tsUtils.groupTeamsnapItems(items, bulkLoadTypes))
|
||||
.then(items => {
|
||||
tsUtils.teamsnapLog('bulkLoad', types=bulkLoadTypes, team_id, req);
|
||||
req.timeline.events = items.events;
|
||||
req.timeline.event_lineups = items.eventLineups;
|
||||
req.timeline.event_lineup_entries = items.eventLineupEntries;
|
||||
})
|
||||
)
|
||||
tsUtils.teamsnapLog('loadAvailabilites', types=['availabilities'], team_id, req);
|
||||
|
||||
req.promises.push(
|
||||
teamsnap.loadAvailabilities({eventId: eventIds}).then(availabilities => {
|
||||
req.timeline.availabilities = availabilities
|
||||
}
|
||||
)
|
||||
)
|
||||
// }
|
||||
// else {
|
||||
// // const {event_lineup} = req
|
||||
// }
|
||||
const {event_lineup} = req
|
||||
next();
|
||||
}
|
||||
|
||||
const linksForEventSheet = async (req, res, next) => {
|
||||
await Promise.all(req.promises)
|
||||
const events = [...req.recent_events, req.event, ...req.upcoming_events]
|
||||
events.forEach((event) => {
|
||||
console.log()
|
||||
})
|
||||
next();
|
||||
}
|
||||
|
||||
router.use("/:team_id([0-9]+)/event/:event_id([0-9]+)/sheet", loadEventLineup)
|
||||
router.get("/:team_id([0-9]+)/event/:event_id([0-9]+)/lineup/:event_lineup_id([0-9]+)/sheet", loadEventLineup, loadRecentAndUpcomingEvents, loadEvents, eventsSheetController.getEventSheet)
|
||||
|
||||
// Routes
|
||||
router.get("/:team_id([0-9]+)/event/:event_id([0-9]+)/sheet", async (req,res) => {
|
||||
await Promise.all(req.promises);
|
||||
const {event_lineup} = req
|
||||
res.redirect(`lineup/${event_lineup.id}/sheet`);
|
||||
}
|
||||
)
|
||||
|
||||
router.post("/:team_id([0-9]+)/event/:event_id([0-9]+)/lineup/:event_lineup_id([0-9]+)/sheet", upload.none(), eventsSheetController.getEventSheet )
|
||||
|
||||
module.exports = {router}
|
||||
Reference in New Issue
Block a user