Skip to content

Commit

Permalink
Merge branch 'dev' into tl-bug-fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
ThatMegamind authored Apr 27, 2024
2 parents 5383103 + f22fbe1 commit d8a3c84
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions routes/publishedSchedule.js
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,56 @@ publishedScheduleRouter.get('/season', async (req, res) => {
}
});

// GET /published-schedule/stats - returns stats of event types and subjects for a specific season
publishedScheduleRouter.get('/stats', async (req, res) => {
try {
const { season, year } = req.query;

const statResult = await db.query(
`
WITH all_event_types AS (
SELECT DISTINCT unnest(event_type) AS event_type
FROM catalog
),
all_subjects AS (
SELECT DISTINCT unnest(subject) AS subject
FROM catalog
),
all_permutations AS (
SELECT aet.event_type, asu.subject
FROM all_event_types aet
CROSS JOIN all_subjects asu
)
SELECT
COALESCE(ap.event_type::text, 'Total') AS event_type,
COALESCE(ap.subject::text, 'Total') AS subject,
COALESCE(COUNT(c.catalog_id), 0) AS total_count
FROM all_permutations ap
LEFT JOIN (
SELECT *,
ps.day_id AS ps_day_id,
c.id AS catalog_id
FROM catalog c
JOIN published_schedule ps ON c.id = ps.event_id
JOIN day d ON PS.day_id = d.id
WHERE $1 = ANY(c.season)
AND EXTRACT(YEAR FROM d.event_date) = $2
) c ON ap.event_type = ANY(c.event_type) AND ap.subject = ANY(c.subject)
GROUP BY ROLLUP (ap.event_type), ROLLUP (ap.subject)
ORDER BY CASE WHEN ap.event_type IS NULL THEN 1 ELSE 0 END,
CASE WHEN ap.subject IS NULL THEN 1 ELSE 0 END,
ap.event_type NULLS FIRST,
ap.subject NULLS FIRST;
`,
[season, year],
);

res.status(200).json(keysToCamel(statResult));
} catch (error) {
res.status(500).json({ error: 'Internal server error' });
}
});

// GET /published-schedule/date - returns all events occurring on a specific date
publishedScheduleRouter.get('/dayId', async (req, res) => {
try {
Expand Down

0 comments on commit d8a3c84

Please sign in to comment.