mirror of
https://github.com/TheBinaryNinja/tvapp2.git
synced 2026-06-12 08:45:42 -04:00
update api
This commit is contained in:
10
server/dist/routes/sources.js
vendored
10
server/dist/routes/sources.js
vendored
@@ -1,4 +1,4 @@
|
|||||||
// Generic source RestAPI, ported from ../d-combine/server.mjs into TVApp2's Express stack. One router
|
// Generic source REST API, ported from ../d-combine/server.mjs into TVApp2's Express stack. One router
|
||||||
// serves every source by iterating the registry — adding a source needs zero route changes.
|
// serves every source by iterating the registry — adding a source needs zero route changes.
|
||||||
//
|
//
|
||||||
// GET /api/sources manifest (drives the SPA; one entry per registered source)
|
// GET /api/sources manifest (drives the SPA; one entry per registered source)
|
||||||
@@ -40,7 +40,7 @@ sourcesRouter.get('/api/sources/:id/status', async (req, res, next) => {
|
|||||||
try {
|
try {
|
||||||
const adapter = getSource(req.params.id);
|
const adapter = getSource(req.params.id);
|
||||||
if (!adapter)
|
if (!adapter)
|
||||||
return res.status(404).json({ error: `Unknown source: ${req.params.id}` });
|
return res.status(404).json({ error: 'unknown_source' });
|
||||||
const status = adapter.status ? await adapter.status() : null;
|
const status = adapter.status ? await adapter.status() : null;
|
||||||
res.json(status ?? null);
|
res.json(status ?? null);
|
||||||
}
|
}
|
||||||
@@ -52,14 +52,14 @@ sourcesRouter.get('/api/sources/:id/status', async (req, res, next) => {
|
|||||||
sourcesRouter.get('/api/sources/:id/metrics', (req, res) => {
|
sourcesRouter.get('/api/sources/:id/metrics', (req, res) => {
|
||||||
const m = metricsById.get(req.params.id);
|
const m = metricsById.get(req.params.id);
|
||||||
if (!m)
|
if (!m)
|
||||||
return res.status(404).json({ error: `Unknown source: ${req.params.id}` });
|
return res.status(404).json({ error: 'unknown_source' });
|
||||||
res.json(snapshotOne(m));
|
res.json(snapshotOne(m));
|
||||||
});
|
});
|
||||||
// ── Live sync (refresh channels + Playlist sync metadata from upstream) ───────
|
// ── Live sync (refresh channels + Playlist sync metadata from upstream) ───────
|
||||||
sourcesRouter.post('/api/sources/:id/sync', async (req, res, next) => {
|
sourcesRouter.post('/api/sources/:id/sync', async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
if (!getSource(req.params.id))
|
if (!getSource(req.params.id))
|
||||||
return res.status(404).json({ error: `Unknown source: ${req.params.id}` });
|
return res.status(404).json({ error: 'unknown_source' });
|
||||||
res.json(await syncLive(req.params.id));
|
res.json(await syncLive(req.params.id));
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
@@ -70,7 +70,7 @@ sourcesRouter.post('/api/sources/:id/sync', async (req, res, next) => {
|
|||||||
sourcesRouter.post('/api/sources/:id/reset', async (req, res, next) => {
|
sourcesRouter.post('/api/sources/:id/reset', async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
if (!getSource(req.params.id))
|
if (!getSource(req.params.id))
|
||||||
return res.status(404).json({ error: `Unknown source: ${req.params.id}` });
|
return res.status(404).json({ error: 'unknown_source' });
|
||||||
res.json(await resetFromBundle(req.params.id));
|
res.json(await resetFromBundle(req.params.id));
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
|
|||||||
2
server/dist/routes/sources.js.map
vendored
2
server/dist/routes/sources.js.map
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/routes/sources.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../src/routes/sources.ts"],"names":[],"mappings":"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"}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// Generic source RestAPI, ported from ../d-combine/server.mjs into TVApp2's Express stack. One router
|
// Generic source REST API, ported from ../d-combine/server.mjs into TVApp2's Express stack. One router
|
||||||
// serves every source by iterating the registry — adding a source needs zero route changes.
|
// serves every source by iterating the registry — adding a source needs zero route changes.
|
||||||
//
|
//
|
||||||
// GET /api/sources manifest (drives the SPA; one entry per registered source)
|
// GET /api/sources manifest (drives the SPA; one entry per registered source)
|
||||||
@@ -46,7 +46,7 @@ sourcesRouter.get('/api/sources', (_req, res) => {
|
|||||||
sourcesRouter.get('/api/sources/:id/status', async (req, res, next) => {
|
sourcesRouter.get('/api/sources/:id/status', async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
const adapter = getSource(req.params.id);
|
const adapter = getSource(req.params.id);
|
||||||
if (!adapter) return res.status(404).json({ error: `Unknown source: ${req.params.id}` });
|
if (!adapter) return res.status(404).json({ error: 'unknown_source' });
|
||||||
const status = adapter.status ? await adapter.status() : null;
|
const status = adapter.status ? await adapter.status() : null;
|
||||||
res.json(status ?? null);
|
res.json(status ?? null);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -57,14 +57,14 @@ sourcesRouter.get('/api/sources/:id/status', async (req, res, next) => {
|
|||||||
// ── Per-source proxy metrics ──────────────────────────────────────────────────
|
// ── Per-source proxy metrics ──────────────────────────────────────────────────
|
||||||
sourcesRouter.get('/api/sources/:id/metrics', (req, res) => {
|
sourcesRouter.get('/api/sources/:id/metrics', (req, res) => {
|
||||||
const m = metricsById.get(req.params.id);
|
const m = metricsById.get(req.params.id);
|
||||||
if (!m) return res.status(404).json({ error: `Unknown source: ${req.params.id}` });
|
if (!m) return res.status(404).json({ error: 'unknown_source' });
|
||||||
res.json(snapshotOne(m));
|
res.json(snapshotOne(m));
|
||||||
});
|
});
|
||||||
|
|
||||||
// ── Live sync (refresh channels + Playlist sync metadata from upstream) ───────
|
// ── Live sync (refresh channels + Playlist sync metadata from upstream) ───────
|
||||||
sourcesRouter.post('/api/sources/:id/sync', async (req, res, next) => {
|
sourcesRouter.post('/api/sources/:id/sync', async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
if (!getSource(req.params.id)) return res.status(404).json({ error: `Unknown source: ${req.params.id}` });
|
if (!getSource(req.params.id)) return res.status(404).json({ error: 'unknown_source' });
|
||||||
res.json(await syncLive(req.params.id));
|
res.json(await syncLive(req.params.id));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
next(err);
|
next(err);
|
||||||
@@ -74,7 +74,7 @@ sourcesRouter.post('/api/sources/:id/sync', async (req, res, next) => {
|
|||||||
// ── Reset to the committed bundle baseline ────────────────────────────────────
|
// ── Reset to the committed bundle baseline ────────────────────────────────────
|
||||||
sourcesRouter.post('/api/sources/:id/reset', async (req, res, next) => {
|
sourcesRouter.post('/api/sources/:id/reset', async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
if (!getSource(req.params.id)) return res.status(404).json({ error: `Unknown source: ${req.params.id}` });
|
if (!getSource(req.params.id)) return res.status(404).json({ error: 'unknown_source' });
|
||||||
res.json(await resetFromBundle(req.params.id));
|
res.json(await resetFromBundle(req.params.id));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
next(err);
|
next(err);
|
||||||
|
|||||||
Reference in New Issue
Block a user