Release 0.7.0
This commit is contained in:
1 parent
d586fbd8ce
commit
6d96900d81
27 files changed
+2060
-25
No files matched your search
@@ -0,0 +1,31 @@
|
||||
import { json } from '@sveltejs/kit';
|
||||
import type { RequestHandler } from './$types';
|
||||
import { apiBody, apiFailure } from '#lib/server/api-http.js';
|
||||
import { addPieceUsage, getShow } from '#lib/server/shows.js';
|
||||
import {
|
||||
auditTechnical,
|
||||
authenticateTechnical,
|
||||
idempotentResponse
|
||||
} from '#lib/server/technical-access.js';
|
||||
|
||||
export const POST: RequestHandler = async ({ request, params }) => {
|
||||
try {
|
||||
const actor = authenticateTechnical(request, true);
|
||||
const body = await apiBody(request);
|
||||
const result = idempotentResponse(actor, request, body, () => {
|
||||
const created = addPieceUsage(params.id, Number(body.revision), {
|
||||
pieceId: String(body.pieceId ?? ''),
|
||||
sectionId: body.sectionId ? String(body.sectionId) : null,
|
||||
position: body.position == null ? undefined : Number(body.position)
|
||||
});
|
||||
auditTechnical(actor, 'usage.create', 'usage', created.id);
|
||||
return { status: 201, body: { data: getShow(params.id), usageId: created.id } };
|
||||
});
|
||||
return json(result.body, {
|
||||
status: result.status,
|
||||
headers: { 'Idempotency-Replayed': result.duplicate ? 'true' : 'false' }
|
||||
});
|
||||
} catch (cause) {
|
||||
return apiFailure(cause);
|
||||
}
|
||||
};
|
||||
Reference in new issue
Block a user