{"version":3,"file":"reorder.mjs","names":[],"sources":["../../../../../../src/astro/routes/api/admin/byline-fields/reorder.ts"],"sourcesContent":["/**\n * Byline field reorder.\n *\n * POST /_emdash/api/admin/byline-fields/reorder\n *\n * Body: `{ slugs: string[] }` — the exact set of currently registered\n * slugs in the desired order. The registry rejects any drift\n * (`REORDER_MISMATCH` → 400). Empty `[]` against an empty registered\n * set is a no-op by registry contract; the zod schema permits it.\n *\n * Thin wrapper around `handleBylineFieldReorder`.\n *\n * Phase 4 of Discussion #1174.\n */\n\nimport type { APIRoute } from \"astro\";\n\nimport { requirePerm } from \"#api/authorize.js\";\nimport { requireDb, unwrapResult } from \"#api/error.js\";\nimport { handleBylineFieldReorder } from \"#api/handlers/byline-fields.js\";\nimport { isParseError, parseBody } from \"#api/parse.js\";\nimport { bylineFieldReorderBody } from \"#api/schemas.js\";\n\nexport const prerender = false;\n\nexport const POST: APIRoute = async ({ request, locals }) => {\n\tconst { emdash, user } = locals;\n\tconst denied = requirePerm(user, \"schema:manage\");\n\tif (denied) return denied;\n\n\tconst dbErr = requireDb(emdash?.db);\n\tif (dbErr) return dbErr;\n\n\tconst body = await parseBody(request, bylineFieldReorderBody);\n\tif (isParseError(body)) return body;\n\n\tconst result = await handleBylineFieldReorder(emdash.db, body.slugs);\n\treturn unwrapResult(result);\n};\n"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAa,YAAY;AAEzB,MAAa,OAAiB,OAAO,EAAE,SAAS,aAAa;CAC5D,MAAM,EAAE,QAAQ,SAAS;CACzB,MAAM,SAAS,YAAY,MAAM,gBAAgB;AACjD,KAAI,OAAQ,QAAO;CAEnB,MAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,KAAI,MAAO,QAAO;CAElB,MAAM,OAAO,MAAM,UAAU,SAAS,uBAAuB;AAC7D,KAAI,aAAa,KAAK,CAAE,QAAO;AAG/B,QAAO,aADQ,MAAM,yBAAyB,OAAO,IAAI,KAAK,MAAM,CACzC"}