[verified] align app exam layout payloads
This commit is contained in:
@@ -20,6 +20,7 @@ import type {
|
||||
ExamResponseArea,
|
||||
ExamTemplate,
|
||||
ExamTemplateDetail,
|
||||
ExamTemplateLayout,
|
||||
MarkingBatch,
|
||||
MarkUpsertPayload,
|
||||
Neo4jSyncResult,
|
||||
@@ -64,6 +65,10 @@ function questionPayload(q: ExamQuestion, idMap?: Map<string, string>) {
|
||||
spec_ref: q.spec_ref,
|
||||
bounds: q.bounds ?? null,
|
||||
page: q.page ?? null,
|
||||
source: q.source ?? 'manual',
|
||||
confirmed: q.confirmed ?? true,
|
||||
confidence: q.confidence ?? null,
|
||||
derivation: q.derivation ?? null,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -79,6 +84,8 @@ function responseAreaPayload(r: ExamResponseArea, idMap?: Map<string, string>, d
|
||||
source: r.source,
|
||||
confirmed: r.confirmed,
|
||||
confidence: r.confidence,
|
||||
mark_subtype: r.mark_subtype ?? null,
|
||||
derivation: r.derivation ?? null,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -92,6 +99,26 @@ function boundaryPayload(b: ExamBoundary, idMap?: Map<string, string>, duplicate
|
||||
bounds: b.bounds,
|
||||
source: b.source,
|
||||
confirmed: b.confirmed,
|
||||
confidence: b.confidence ?? null,
|
||||
derivation: b.derivation ?? null,
|
||||
};
|
||||
}
|
||||
|
||||
function layoutPayload(layout: ExamTemplateLayout, duplicate = false) {
|
||||
return {
|
||||
id: duplicate ? newUuid() : layout.id,
|
||||
page_index: layout.page_index,
|
||||
role: layout.role ?? null,
|
||||
margin_left: layout.margin_left ?? null,
|
||||
margin_right: layout.margin_right ?? null,
|
||||
margin_top: layout.margin_top ?? null,
|
||||
margin_bottom: layout.margin_bottom ?? null,
|
||||
margins_enabled: layout.margins_enabled ?? true,
|
||||
source: layout.source ?? 'manual',
|
||||
confirmed: layout.confirmed ?? true,
|
||||
confidence: layout.confidence ?? null,
|
||||
derivation: layout.derivation ?? null,
|
||||
meta: layout.meta ?? {},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -113,6 +140,7 @@ async function replaceTemplate(
|
||||
questions: detail.questions.map((q) => questionPayload(q, idMap)),
|
||||
response_areas: detail.response_areas.map((r) => responseAreaPayload(r, idMap, duplicateIds)),
|
||||
boundaries: detail.boundaries.map((b) => boundaryPayload(b, idMap, duplicateIds)),
|
||||
layout: (detail.layout ?? []).map((layout) => layoutPayload(layout, duplicateIds)),
|
||||
},
|
||||
{ headers },
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user