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 http = require("http");
|
||||
const archiver = require("archiver");
|
||||
const { placeAsset } = require("./lib/ampp-folder-placer");
|
||||
|
||||
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 }); }
|
||||
});
|
||||
|
||||
// ---- 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 ====================
|
||||
// ==================== SHARE LINKS ====================
|
||||
app.get("/api/sharelinks", requireAdmin, (req, res) => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue