fix: Feed API POST auth gate + sanitize e.message in error responses
This commit is contained in:
parent
9e90008575
commit
3cd8ebd0b6
26
server.js
26
server.js
|
|
@ -2060,7 +2060,7 @@ ${excerpt}
|
||||||
try {
|
try {
|
||||||
const count = await runFeedFetch();
|
const count = await runFeedFetch();
|
||||||
res.json({ ok: true, fetched: count });
|
res.json({ ok: true, fetched: count });
|
||||||
} catch (e) { console.error(e); res.status(500).json({ error: e.message }); }
|
} catch (e) { console.error(e); res.status(500).json({ error: 'Internal server error' }); }
|
||||||
});
|
});
|
||||||
|
|
||||||
// ── TTS (VOICEVOX) ─────────────────────────────────────────────
|
// ── TTS (VOICEVOX) ─────────────────────────────────────────────
|
||||||
|
|
@ -2382,7 +2382,7 @@ ${excerpt}
|
||||||
if (result.rows.length === 0) return res.status(404).json({ error: 'グループが見つかりません' });
|
if (result.rows.length === 0) return res.status(404).json({ error: 'グループが見つかりません' });
|
||||||
res.json(result.rows[0]);
|
res.json(result.rows[0]);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2395,7 +2395,7 @@ ${excerpt}
|
||||||
);
|
);
|
||||||
res.json(result.rows);
|
res.json(result.rows);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2423,7 +2423,7 @@ ${excerpt}
|
||||||
if (url) archiveShare(share.id, url);
|
if (url) archiveShare(share.id, url);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[together/share]', e.message);
|
console.error('[together/share]', e.message);
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2440,7 +2440,7 @@ ${excerpt}
|
||||||
res.json({ ok: true });
|
res.json({ ok: true });
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[together/share DELETE]', e.message);
|
console.error('[together/share DELETE]', e.message);
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2466,7 +2466,7 @@ ${excerpt}
|
||||||
res.json(result.rows);
|
res.json(result.rows);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[together/feed]', e.message);
|
console.error('[together/feed]', e.message);
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2480,7 +2480,7 @@ ${excerpt}
|
||||||
if (result.rows.length === 0) return res.status(404).json({ error: '見つかりません' });
|
if (result.rows.length === 0) return res.status(404).json({ error: '見つかりません' });
|
||||||
res.json(result.rows[0]);
|
res.json(result.rows[0]);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2509,7 +2509,7 @@ ${excerpt}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[together/react]', e.message);
|
console.error('[together/react]', e.message);
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2522,7 +2522,7 @@ ${excerpt}
|
||||||
);
|
);
|
||||||
res.json(result.rows);
|
res.json(result.rows);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2540,7 +2540,7 @@ ${excerpt}
|
||||||
res.json(result.rows[0]);
|
res.json(result.rows[0]);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[together/comments POST]', e.message);
|
console.error('[together/comments POST]', e.message);
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2564,7 +2564,7 @@ ${excerpt}
|
||||||
res.json(result.rows);
|
res.json(result.rows);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[together/search]', e.message);
|
console.error('[together/search]', e.message);
|
||||||
res.status(500).json({ error: e.message });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2665,7 +2665,7 @@ ${excerpt}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
req2.on('timeout', () => { req2.destroy(); res.status(500).json({ error: 'Timeout' }); });
|
req2.on('timeout', () => { req2.destroy(); res.status(500).json({ error: 'Timeout' }); });
|
||||||
req2.on('error', (e) => { res.status(500).json({ error: e.message, code: e.code }); });
|
req2.on('error', (e) => { console.error('[proxy] error:', e.code, e.message); res.status(500).json({ error: 'Proxy error', code: e.code }); });
|
||||||
req2.end();
|
req2.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -2710,7 +2710,7 @@ ${excerpt}
|
||||||
|
|
||||||
req2.on('error', (e) => {
|
req2.on('error', (e) => {
|
||||||
console.error('[atlas/tailscale-scan] error:', e.code, e.message);
|
console.error('[atlas/tailscale-scan] error:', e.code, e.message);
|
||||||
res.status(500).json({ error: e.message, code: e.code });
|
res.status(500).json({ error: 'Scan error', code: e.code });
|
||||||
});
|
});
|
||||||
|
|
||||||
req2.end();
|
req2.end();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue