Initial local commit
This commit is contained in:
76
routes/public.js
Normal file
76
routes/public.js
Normal file
@@ -0,0 +1,76 @@
|
||||
// routes/public.js
|
||||
const express = require('express');
|
||||
const { Pool } = require('pg');
|
||||
const router = express.Router();
|
||||
|
||||
// PostgreSQL Pool mit .env Konfiguration
|
||||
const pool = new Pool({
|
||||
host: process.env.DB_HOST,
|
||||
port: process.env.DB_PORT,
|
||||
database: process.env.DB_NAME,
|
||||
user: process.env.DB_USER,
|
||||
password: process.env.DB_PASSWORD,
|
||||
ssl: process.env.DB_SSL === 'true' ? { rejectUnauthorized: false } : false
|
||||
});
|
||||
|
||||
// Fehlerbehandlung für Pool
|
||||
pool.on('error', (err) => {
|
||||
console.error('PostgreSQL Pool Fehler:', err);
|
||||
});
|
||||
|
||||
// Public endpoint für Standorte (keine Authentifizierung erforderlich)
|
||||
router.get('/locations', async (req, res) => {
|
||||
try {
|
||||
const result = await pool.query('SELECT * FROM "GetLocations"');
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: result.rows
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Abrufen der getlocations:', error);
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: 'Fehler beim Abrufen der Standorte'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// Public route to get times for location with parameter
|
||||
router.get('/times', async (req, res) => {
|
||||
const { location } = req.query;
|
||||
|
||||
try {
|
||||
// First, let's check if the view exists and has data
|
||||
const viewCheck = await pool.query('SELECT COUNT(*) as count FROM "GetTimesWithPlayerAndLocation"');
|
||||
|
||||
// Check what location names are available
|
||||
const availableLocations = await pool.query('SELECT DISTINCT location_name FROM "GetTimesWithPlayerAndLocation"');
|
||||
|
||||
// Now search for the specific location
|
||||
const result = await pool.query('SELECT * FROM "GetTimesWithPlayerAndLocation" WHERE location_name = $1', [location]);
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
data: result.rows,
|
||||
debug: {
|
||||
searchedFor: location,
|
||||
totalRecords: viewCheck.rows[0].count,
|
||||
availableLocations: availableLocations.rows.map(r => r.location_name),
|
||||
foundRecords: result.rows.length
|
||||
}
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ Fehler beim Abrufen der Zeiten:', error);
|
||||
res.status(500).json({
|
||||
success: false,
|
||||
message: 'Fehler beim Abrufen der Zeiten',
|
||||
error: error.message
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user