UNPKG

ltijs

Version:

Easily turn your web application into a LTI 1.3 Learning Tool.

58 lines • 2.47 kB
"use strict"; 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