ltijs
Version:
Easily turn your web application into a LTI 1.3 Learning Tool.
58 lines • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LineItemIdSchema = exports.ResultsListSchema = exports.LineItemsListSchema = exports.ResultSchema = exports.GetScoresOptionsSchema = exports.GetLineItemsOptionsSchema = exports.ScoreSchema = exports.LineItemSchema = void 0;
const zod_1 = require("zod");
// Field names mirror the AGS wire format verbatim -- unlike Names and Roles
// (OIDC-flavored snake_case), AGS object fields are already camelCase on the
// wire in both directions; only query-string parameter keys are snake_case.
// `.loose()` tolerates vendor-specific extra fields.
exports.LineItemSchema = zod_1.z
.object({
id: zod_1.z.string().optional(),
label: zod_1.z.string(),
scoreMaximum: zod_1.z.number(),
resourceId: zod_1.z.string().optional(),
resourceLinkId: zod_1.z.string().optional(),
tag: zod_1.z.string().optional(),
startDateTime: zod_1.z.string().optional(),
endDateTime: zod_1.z.string().optional(),
})
.loose();
exports.ScoreSchema = zod_1.z
.object({
userId: zod_1.z.string().optional(),
scoreGiven: zod_1.z.number().optional(),
scoreMaximum: zod_1.z.number().optional(),
comment: zod_1.z.string().optional(),
activityProgress: zod_1.z.string().optional(),
gradingProgress: zod_1.z.string().optional(),
timestamp: zod_1.z.string().optional(),
})
.loose();
exports.GetLineItemsOptionsSchema = zod_1.z.object({
resourceLinkId: zod_1.z.boolean().optional(),
resourceId: zod_1.z.string().optional(),
tag: zod_1.z.string().optional(),
limit: zod_1.z.number().optional(),
id: zod_1.z.string().optional(),
label: zod_1.z.string().optional(),
url: zod_1.z.string().optional(),
});
exports.GetScoresOptionsSchema = zod_1.z.object({
userId: zod_1.z.string().optional(),
limit: zod_1.z.number().optional(),
url: zod_1.z.string().optional(),
});
exports.ResultSchema = zod_1.z
.object({
userId: zod_1.z.string().optional(),
resultScore: zod_1.z.number().optional(),
resultMaximum: zod_1.z.number().optional(),
comment: zod_1.z.string().optional(),
scoreOf: zod_1.z.string().optional(),
})
.loose();
exports.LineItemsListSchema = zod_1.z.array(exports.LineItemSchema);
exports.ResultsListSchema = zod_1.z.array(exports.ResultSchema);
exports.LineItemIdSchema = zod_1.z.string().min(1, 'Line item ID should be a non-empty string.');
//# sourceMappingURL=grading.schemas.js.map