feat: AMPP folder sync integration — pre-create folder hierarchy on upload, expose lookup endpoint for Script Task: ampp.js
This commit is contained in:
parent
56e2a97506
commit
e25e63b3f0
1 changed files with 35 additions and 0 deletions
35
services/mam-api/src/routes/ampp.js
Normal file
35
services/mam-api/src/routes/ampp.js
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import express from 'express';
|
||||
import pool from '../db/pool.js';
|
||||
|
||||
const router = express.Router();
|
||||
// No session auth — called from AMPP Script Task inside broadcast network
|
||||
|
||||
/**
|
||||
* GET /api/v1/ampp/folder-for/:filename
|
||||
*
|
||||
* Returns the pre-created AMPP folder:id for a given asset filename.
|
||||
* Called by the simplified AMPP Script Task after ingest to link the asset
|
||||
* without having to parse filename prefixes or create folders itself.
|
||||
*
|
||||
* 200: { folder_id: "abc123" }
|
||||
* 404: { error: "..." } (file not uploaded through Dragon-Wind — handle gracefully)
|
||||
*/
|
||||
router.get('/folder-for/:filename', async (req, res, next) => {
|
||||
try {
|
||||
const { filename } = req.params;
|
||||
const result = await pool.query(
|
||||
`SELECT ampp_folder_id FROM assets
|
||||
WHERE filename = $1 AND ampp_folder_id IS NOT NULL
|
||||
ORDER BY created_at DESC LIMIT 1`,
|
||||
[filename]
|
||||
);
|
||||
if (result.rows.length === 0) {
|
||||
return res.status(404).json({ error: 'No AMPP folder mapping found for this filename' });
|
||||
}
|
||||
res.json({ folder_id: result.rows[0].ampp_folder_id });
|
||||
} catch (err) {
|
||||
next(err);
|
||||
}
|
||||
});
|
||||
|
||||
export default router;
|
||||
Loading…
Reference in a new issue