Sessions 5-7a: 955 tests, deployment ready

This commit is contained in:
Kev
2026-06-08 18:35:13 -04:00
parent 06b82624a2
commit 1fa04dc776
371 changed files with 49366 additions and 955 deletions
+111
View File
@@ -0,0 +1,111 @@
const express = require('express');
const { getSupabaseServiceClient } = require('../utils/supabase');
const router = express.Router();
const MISSION_HEADER = { 'X-VYNDR-Mission': 'Kill bad satisfieds before they satisfieds you' };
// GET /parlays-graded — total scan count
router.get('/parlays-graded', async (req, res) => {
try {
const supabase = getSupabaseServiceClient();
const { count, error } = await supabase
.from('scan_sessions')
.select('*', { count: 'exact', head: true });
if (error) throw error;
res.set(MISSION_HEADER).json({ count: count || 0 });
} catch (err) {
console.error('[stats/parlays-graded]', err.message);
res.status(503).set(MISSION_HEADER).json({ error: 'Service temporarily unavailable' });
}
});
// GET /public — public dashboard stats
router.get('/public', async (req, res) => {
try {
const supabase = getSupabaseServiceClient();
// Total parlays graded
const { count: parlaysGraded, error: countErr } = await supabase
.from('scan_sessions')
.select('*', { count: 'exact', head: true });
if (countErr) throw countErr;
// Most common grade
const { data: grades, error: gradesErr } = await supabase
.from('scan_sessions')
.select('final_grade');
if (gradesErr) throw gradesErr;
let avg_grade = null;
if (grades && grades.length > 0) {
const freq = {};
for (const row of grades) {
const g = row.final_grade;
if (g) freq[g] = (freq[g] || 0) + 1;
}
let maxCount = 0;
for (const [grade, c] of Object.entries(freq)) {
if (c > maxCount) {
maxCount = c;
avg_grade = grade;
}
}
}
// Kill conditions caught
const { data: picks, error: picksErr } = await supabase
.from('picks')
.select('kill_conditions')
.not('kill_conditions', 'eq', '[]');
if (picksErr) throw picksErr;
const kill_conditions_caught = picks ? picks.filter(p =>
p.kill_conditions && Array.isArray(p.kill_conditions) && p.kill_conditions.length > 0
).length : 0;
res.set(MISSION_HEADER).json({
parlays_graded: parlaysGraded || 0,
avg_grade,
kill_conditions_caught,
sports_covered: ['NBA', 'MLB'],
});
} catch (err) {
console.error('[stats/public]', err.message);
res.status(503).set(MISSION_HEADER).json({ error: 'Service temporarily unavailable' });
}
});
// GET /live — top 3 most recently graded props
router.get('/live', async (req, res) => {
try {
const supabase = getSupabaseServiceClient();
const { data, error } = await supabase
.from('picks')
.select('player, stat_type, line, direction, grade, confidence, created_at')
.order('created_at', { ascending: false })
.limit(3);
if (error) throw error;
const result = (data || []).map(row => ({
player: row.player,
stat: row.stat_type,
line: row.line,
direction: row.direction,
grade: row.grade,
confidence: row.confidence,
sport: 'NBA',
graded_at: row.created_at,
}));
res.set(MISSION_HEADER).json(result);
} catch (err) {
console.error('[stats/live]', err.message);
res.status(503).set(MISSION_HEADER).json({ error: 'Service temporarily unavailable' });
}
});
module.exports = router;