debug: try/catch in GET /, expires_at check in debug endpoint
This commit is contained in:
@@ -10,8 +10,11 @@ function generateToken() { return crypto.randomBytes(24).toString('base64url');
|
|||||||
|
|
||||||
// GET / – eigene Shares auflisten
|
// GET / – eigene Shares auflisten
|
||||||
router.get('/', authenticate, (req, res) => {
|
router.get('/', authenticate, (req, res) => {
|
||||||
|
try {
|
||||||
const shares = db.prepare(`
|
const shares = db.prepare(`
|
||||||
SELECT s.*, f.name as file_name, f.size as file_size,
|
SELECT s.id, s.token, s.user_id, s.file_id, s.folder_id, s.label,
|
||||||
|
s.password_hash, s.expires_at, s.created_at, s.download_count,
|
||||||
|
f.name as file_name, f.size as file_size,
|
||||||
fo.name as folder_name
|
fo.name as folder_name
|
||||||
FROM public_file_shares s
|
FROM public_file_shares s
|
||||||
LEFT JOIN files f ON f.id = s.file_id
|
LEFT JOIN files f ON f.id = s.file_id
|
||||||
@@ -20,6 +23,10 @@ router.get('/', authenticate, (req, res) => {
|
|||||||
ORDER BY s.created_at DESC
|
ORDER BY s.created_at DESC
|
||||||
`).all(req.user.id);
|
`).all(req.user.id);
|
||||||
res.json({ shares });
|
res.json({ shares });
|
||||||
|
} catch(e) {
|
||||||
|
console.error('[public-shares GET]', e.message);
|
||||||
|
res.status(500).json({ error: e.message });
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// POST / – neuen Share erstellen
|
// POST / – neuen Share erstellen
|
||||||
@@ -66,7 +73,15 @@ router.get('/debug-table', (req, res) => {
|
|||||||
const count = exists ? db.prepare('SELECT COUNT(*) as n FROM public_file_shares').get() : null;
|
const count = exists ? db.prepare('SELECT COUNT(*) as n FROM public_file_shares').get() : null;
|
||||||
const cols = exists ? db.pragma('table_info(public_file_shares)').map(c=>c.name) : [];
|
const cols = exists ? db.pragma('table_info(public_file_shares)').map(c=>c.name) : [];
|
||||||
const sample = exists ? db.prepare('SELECT id, token, user_id, file_id, folder_id, expires_at, download_count FROM public_file_shares LIMIT 5').all() : [];
|
const sample = exists ? db.prepare('SELECT id, token, user_id, file_id, folder_id, expires_at, download_count FROM public_file_shares LIMIT 5').all() : [];
|
||||||
res.json({ exists: !!exists, count: count?.n, cols, sample });
|
// Test: ersten Token direkt abfragen wie public endpoint es tut
|
||||||
|
let publicTest = null;
|
||||||
|
if (sample.length > 0) {
|
||||||
|
const t = sample[0].token;
|
||||||
|
const s = db.prepare('SELECT s.*, f.name as file_name, fo.name as folder_name FROM public_file_shares s LEFT JOIN files f ON f.id = s.file_id LEFT JOIN folders fo ON fo.id = s.folder_id WHERE s.token=?').get(t);
|
||||||
|
const now = Math.floor(Date.now()/1000);
|
||||||
|
publicTest = { token: t, expires_at: s?.expires_at, now, isExpired: s?.expires_at < now, typeof_expires: typeof s?.expires_at };
|
||||||
|
}
|
||||||
|
res.json({ exists: !!exists, count: count?.n, cols, sample, publicTest });
|
||||||
} catch(e) { res.status(500).json({ error: e.message }); }
|
} catch(e) { res.status(500).json({ error: e.message }); }
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user