feat: wire AMPP folder placer into server — add /api/ampp/place endpoint
This commit is contained in:
parent
77a64455ae
commit
6667f320c5
1 changed files with 24 additions and 0 deletions
24
server.js
24
server.js
|
|
@ -11,6 +11,7 @@ const fs = require("fs");
|
||||||
const https = require("https");
|
const https = require("https");
|
||||||
const http = require("http");
|
const http = require("http");
|
||||||
const archiver = require("archiver");
|
const archiver = require("archiver");
|
||||||
|
const { placeAsset } = require("./lib/ampp-folder-placer");
|
||||||
|
|
||||||
require("events").defaultMaxListeners = 50;
|
require("events").defaultMaxListeners = 50;
|
||||||
|
|
||||||
|
|
@ -808,6 +809,29 @@ app.get("/api/ampp/jobs/:jobId", requireAuth, async (req, res) => {
|
||||||
} catch (err) { res.status(500).json({ success: false, error: err.message }); }
|
} catch (err) { res.status(500).json({ success: false, error: err.message }); }
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// ---- AMPP Folder Placement ----
|
||||||
|
// POST /api/ampp/place — place an already-ingested AMPP asset into virtual folders.
|
||||||
|
// Body: { assetId: "...", assetName: "NEWS--PKG--clip.mxf" }
|
||||||
|
// assetName uses the "--" delimiter convention — same as folder-organizer-v3.5.py.
|
||||||
|
// Finds or creates the nested AMPP folder hierarchy, then links the asset to the
|
||||||
|
// deepest folder. All v3.5 defensive guards are ported to Node.js (see ampp-folder-placer.js).
|
||||||
|
app.post("/api/ampp/place", requireAuth, async (req, res) => {
|
||||||
|
const { assetId, assetName } = req.body;
|
||||||
|
if (!assetId || !assetName)
|
||||||
|
return res.status(400).json({ success: false, error: "assetId and assetName are required" });
|
||||||
|
if (!getAmppApiKey())
|
||||||
|
return res.status(503).json({ success: false, error: "AMPP API key not configured" });
|
||||||
|
try {
|
||||||
|
const token = await getAmppToken();
|
||||||
|
const result = await placeAsset(getAmppBase(), assetName, assetId, token);
|
||||||
|
console.log(`[AMPP place] ${assetName} (${assetId}) → ${JSON.stringify(result)}`);
|
||||||
|
res.json({ success: true, ...result });
|
||||||
|
} catch (err) {
|
||||||
|
console.error("[AMPP place] Error:", err.message);
|
||||||
|
res.status(500).json({ success: false, error: err.message });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// ==================== CHROME EXTENSION DOWNLOAD ====================
|
// ==================== CHROME EXTENSION DOWNLOAD ====================
|
||||||
// ==================== SHARE LINKS ====================
|
// ==================== SHARE LINKS ====================
|
||||||
app.get("/api/sharelinks", requireAdmin, (req, res) => {
|
app.get("/api/sharelinks", requireAdmin, (req, res) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue