@studious-lms/server 1.21.0 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/models/agenda.d.ts +6 -0
- package/dist/models/agenda.d.ts.map +1 -1
- package/dist/models/announcement.d.ts +2 -0
- package/dist/models/announcement.d.ts.map +1 -1
- package/dist/models/assignment.d.ts +27 -0
- package/dist/models/assignment.d.ts.map +1 -1
- package/dist/models/auth.d.ts +4 -0
- package/dist/models/auth.d.ts.map +1 -1
- package/dist/models/class.d.ts +14 -0
- package/dist/models/class.d.ts.map +1 -1
- package/dist/models/event.d.ts +11 -0
- package/dist/models/event.d.ts.map +1 -1
- package/dist/models/file.d.ts +19 -0
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/folder.d.ts +4 -0
- package/dist/models/folder.d.ts.map +1 -1
- package/dist/models/gradebook.d.ts +180 -0
- package/dist/models/gradebook.d.ts.map +1 -0
- package/dist/models/gradebook.js +88 -0
- package/dist/models/gradebook.js.map +1 -0
- package/dist/models/labChat.d.ts +4 -0
- package/dist/models/labChat.d.ts.map +1 -1
- package/dist/models/newtonChat.d.ts +2 -0
- package/dist/models/newtonChat.d.ts.map +1 -1
- package/dist/models/school.d.ts +177 -0
- package/dist/models/school.d.ts.map +1 -1
- package/dist/models/school.js +75 -2
- package/dist/models/school.js.map +1 -1
- package/dist/models/section.d.ts +3 -0
- package/dist/models/section.d.ts.map +1 -1
- package/dist/models/worksheet.d.ts +6 -0
- package/dist/models/worksheet.d.ts.map +1 -1
- package/dist/routers/_app.d.ts +1475 -73
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +4 -2
- package/dist/routers/_app.js.map +1 -1
- package/dist/routers/admin.d.ts +164 -0
- package/dist/routers/admin.d.ts.map +1 -1
- package/dist/routers/admin.js +23 -4
- package/dist/routers/admin.js.map +1 -1
- package/dist/routers/agenda.d.ts +6 -0
- package/dist/routers/agenda.d.ts.map +1 -1
- package/dist/routers/assignment.d.ts +30 -3
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/class.d.ts +17 -0
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/event.d.ts +4 -0
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/file.d.ts +66 -0
- package/dist/routers/file.d.ts.map +1 -1
- package/dist/routers/file.js +111 -2
- package/dist/routers/file.js.map +1 -1
- package/dist/routers/gradebook.d.ts +299 -0
- package/dist/routers/gradebook.d.ts.map +1 -0
- package/dist/routers/gradebook.js +107 -0
- package/dist/routers/gradebook.js.map +1 -0
- package/dist/routers/school.d.ts +118 -0
- package/dist/routers/school.d.ts.map +1 -1
- package/dist/routers/school.js +32 -3
- package/dist/routers/school.js.map +1 -1
- package/dist/routers/section.d.ts +1 -1
- package/dist/routers/worksheet.d.ts +3 -1
- package/dist/routers/worksheet.d.ts.map +1 -1
- package/dist/services/adminInstitution.d.ts +51 -0
- package/dist/services/adminInstitution.d.ts.map +1 -1
- package/dist/services/adminInstitution.js +52 -2
- package/dist/services/adminInstitution.js.map +1 -1
- package/dist/services/adminMetrics.d.ts +17 -0
- package/dist/services/adminMetrics.d.ts.map +1 -0
- package/dist/services/adminMetrics.js +37 -0
- package/dist/services/adminMetrics.js.map +1 -0
- package/dist/services/adminRunJob.d.ts +9 -0
- package/dist/services/adminRunJob.d.ts.map +1 -1
- package/dist/services/adminRunJob.js +18 -2
- package/dist/services/adminRunJob.js.map +1 -1
- package/dist/services/adminUser.d.ts +67 -0
- package/dist/services/adminUser.d.ts.map +1 -0
- package/dist/services/adminUser.js +87 -0
- package/dist/services/adminUser.js.map +1 -0
- package/dist/services/agenda.d.ts +6 -0
- package/dist/services/agenda.d.ts.map +1 -1
- package/dist/services/assignment.d.ts +27 -0
- package/dist/services/assignment.d.ts.map +1 -1
- package/dist/services/class.d.ts +17 -0
- package/dist/services/class.d.ts.map +1 -1
- package/dist/services/event.d.ts +4 -0
- package/dist/services/event.d.ts.map +1 -1
- package/dist/services/gradeCalculation.d.ts +70 -0
- package/dist/services/gradeCalculation.d.ts.map +1 -0
- package/dist/services/gradeCalculation.js +148 -0
- package/dist/services/gradeCalculation.js.map +1 -0
- package/dist/services/gradebook.d.ts +197 -0
- package/dist/services/gradebook.d.ts.map +1 -0
- package/dist/services/gradebook.js +263 -0
- package/dist/services/gradebook.js.map +1 -0
- package/dist/services/school.d.ts +98 -0
- package/dist/services/school.d.ts.map +1 -1
- package/dist/services/school.js +116 -4
- package/dist/services/school.js.map +1 -1
- package/dist/services/worksheet.d.ts +2 -0
- package/dist/services/worksheet.d.ts.map +1 -1
- package/package.json +1 -1
- package/prisma/migrations/20260708011629_add_gradebook_categories_columns_policies/migration.sql +78 -0
- package/prisma/migrations/20260723142314_make_file_annotation_submission_optional/migration.sql +2 -0
- package/prisma/schema.prisma +62 -2
- package/src/models/gradebook.ts +91 -0
- package/src/models/school.ts +89 -0
- package/src/routers/_app.ts +2 -0
- package/src/routers/admin.ts +28 -0
- package/src/routers/file.ts +128 -0
- package/src/routers/gradebook.ts +173 -0
- package/src/routers/school.ts +45 -0
- package/src/services/adminInstitution.ts +52 -0
- package/src/services/adminMetrics.ts +46 -0
- package/src/services/adminRunJob.ts +24 -0
- package/src/services/adminUser.ts +93 -0
- package/src/services/gradeCalculation.ts +253 -0
- package/src/services/gradebook.ts +383 -0
- package/src/services/school.ts +178 -1
- package/tests/unit/services/gradeCalculation.test.ts +206 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare function getOverviewMetricsForAdmin(): Promise<{
|
|
2
|
+
schools: number;
|
|
3
|
+
users: number;
|
|
4
|
+
verifiedUsers: number;
|
|
5
|
+
classes: number;
|
|
6
|
+
departments: number;
|
|
7
|
+
runJobs: {
|
|
8
|
+
byStatus: {
|
|
9
|
+
status: import(".prisma/client").$Enums.RunJobStatus;
|
|
10
|
+
count: number;
|
|
11
|
+
}[];
|
|
12
|
+
failedLast24h: number;
|
|
13
|
+
};
|
|
14
|
+
earlyAccessRequests: number;
|
|
15
|
+
pendingDevProgramApplications: number;
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=adminMetrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminMetrics.d.ts","sourceRoot":"/","sources":["services/adminMetrics.ts"],"names":[],"mappings":"AAEA,wBAAsB,0BAA0B;;;;;;;;;;;;;;;GA2C/C"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0d16ae52-13c5-586e-b648-4a72913e81c7")}catch(e){}}();
|
|
3
|
+
import { prisma } from '../lib/prisma.js';
|
|
4
|
+
export async function getOverviewMetricsForAdmin() {
|
|
5
|
+
const dayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000);
|
|
6
|
+
const [schools, users, verifiedUsers, classes, departments, runJobsByStatus, failedRunJobsLast24h, earlyAccessRequests, pendingDevProgramApplications,] = await Promise.all([
|
|
7
|
+
prisma.school.count(),
|
|
8
|
+
prisma.user.count(),
|
|
9
|
+
prisma.user.count({ where: { verified: true } }),
|
|
10
|
+
prisma.class.count(),
|
|
11
|
+
prisma.department.count(),
|
|
12
|
+
prisma.runJob.groupBy({ by: ['status'], _count: { _all: true } }),
|
|
13
|
+
prisma.runJob.count({
|
|
14
|
+
where: { status: 'FAILED', createdAt: { gte: dayAgo } },
|
|
15
|
+
}),
|
|
16
|
+
prisma.earlyAccessRequest.count(),
|
|
17
|
+
prisma.schoolDevelopementProgram.count({ where: { status: 'PENDING' } }),
|
|
18
|
+
]);
|
|
19
|
+
return {
|
|
20
|
+
schools,
|
|
21
|
+
users,
|
|
22
|
+
verifiedUsers,
|
|
23
|
+
classes,
|
|
24
|
+
departments,
|
|
25
|
+
runJobs: {
|
|
26
|
+
byStatus: runJobsByStatus.map((row) => ({
|
|
27
|
+
status: row.status,
|
|
28
|
+
count: row._count._all,
|
|
29
|
+
})),
|
|
30
|
+
failedLast24h: failedRunJobsLast24h,
|
|
31
|
+
},
|
|
32
|
+
earlyAccessRequests,
|
|
33
|
+
pendingDevProgramApplications,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=adminMetrics.js.map
|
|
37
|
+
//# debugId=0d16ae52-13c5-586e-b648-4a72913e81c7
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminMetrics.js","sources":["services/adminMetrics.ts"],"sourceRoot":"/","sourcesContent":["import { prisma } from '../lib/prisma.js';\n\nexport async function getOverviewMetricsForAdmin() {\n const dayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000);\n\n const [\n schools,\n users,\n verifiedUsers,\n classes,\n departments,\n runJobsByStatus,\n failedRunJobsLast24h,\n earlyAccessRequests,\n pendingDevProgramApplications,\n ] = await Promise.all([\n prisma.school.count(),\n prisma.user.count(),\n prisma.user.count({ where: { verified: true } }),\n prisma.class.count(),\n prisma.department.count(),\n prisma.runJob.groupBy({ by: ['status'], _count: { _all: true } }),\n prisma.runJob.count({\n where: { status: 'FAILED', createdAt: { gte: dayAgo } },\n }),\n prisma.earlyAccessRequest.count(),\n prisma.schoolDevelopementProgram.count({ where: { status: 'PENDING' } }),\n ]);\n\n return {\n schools,\n users,\n verifiedUsers,\n classes,\n departments,\n runJobs: {\n byStatus: runJobsByStatus.map((row) => ({\n status: row.status,\n count: row._count._all,\n })),\n failedLast24h: failedRunJobsLast24h,\n },\n earlyAccessRequests,\n pendingDevProgramApplications,\n };\n}\n"],"names":[],"mappings":";;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAE1D,MAAM,CACJ,OAAO,EACP,KAAK,EACL,aAAa,EACb,OAAO,EACP,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC9B,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;QACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;QACpB,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;QACzB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAClB,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;SACxD,CAAC;QACF,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE;QACjC,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;KACzE,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,KAAK;QACL,aAAa;QACb,OAAO;QACP,WAAW;QACX,OAAO,EAAE;YACP,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACtC,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI;aACvB,CAAC,CAAC;YACH,aAAa,EAAE,oBAAoB;SACpC;QACD,mBAAmB;QACnB,6BAA6B;KAC9B,CAAC;AACJ,CAAC","debug_id":"0d16ae52-13c5-586e-b648-4a72913e81c7"}
|
|
@@ -42,4 +42,13 @@ export declare function getRunJobForAdmin(id: string): Promise<{
|
|
|
42
42
|
startedAt: Date | null;
|
|
43
43
|
finishedAt: Date | null;
|
|
44
44
|
}>;
|
|
45
|
+
/**
|
|
46
|
+
* Re-enqueue a FAILED or CANCELLED job as a fresh RunJob row with the same
|
|
47
|
+
* type/input. The original row is left untouched for audit purposes.
|
|
48
|
+
*/
|
|
49
|
+
export declare function retryRunJobForAdmin(id: string): Promise<{
|
|
50
|
+
runJobId: string;
|
|
51
|
+
bullJobId: string | null;
|
|
52
|
+
retriedFrom: string;
|
|
53
|
+
}>;
|
|
45
54
|
//# sourceMappingURL=adminRunJob.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adminRunJob.d.ts","sourceRoot":"/","sources":["services/adminRunJob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"adminRunJob.d.ts","sourceRoot":"/","sources":["services/adminRunJob.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAKvE,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;;;;;;;;;;;;;;;;;;;;;GAyBA;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;GASjD;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,MAAM;;;;GAiBnD"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9e24b959-f623-5d96-8bf9-a14cd7bd2654")}catch(e){}}();
|
|
3
3
|
import { TRPCError } from '@trpc/server';
|
|
4
4
|
import { prisma } from '../lib/prisma.js';
|
|
5
|
+
import { enqueueRunJob } from '../workers/queues.js';
|
|
5
6
|
export async function listRunJobsForAdmin(input) {
|
|
6
7
|
const { page, pageSize, status, type } = input;
|
|
7
8
|
const skip = page * pageSize;
|
|
@@ -37,5 +38,20 @@ export async function getRunJobForAdmin(id) {
|
|
|
37
38
|
}
|
|
38
39
|
return job;
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Re-enqueue a FAILED or CANCELLED job as a fresh RunJob row with the same
|
|
43
|
+
* type/input. The original row is left untouched for audit purposes.
|
|
44
|
+
*/
|
|
45
|
+
export async function retryRunJobForAdmin(id) {
|
|
46
|
+
const job = await getRunJobForAdmin(id);
|
|
47
|
+
if (job.status !== 'FAILED' && job.status !== 'CANCELLED') {
|
|
48
|
+
throw new TRPCError({
|
|
49
|
+
code: 'PRECONDITION_FAILED',
|
|
50
|
+
message: `Only FAILED or CANCELLED jobs can be retried (status: ${job.status})`,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const { runJobId, bullJobId } = await enqueueRunJob(job.type, job.input, { classId: job.classId, userId: job.userId });
|
|
54
|
+
return { runJobId, bullJobId, retriedFrom: job.id };
|
|
55
|
+
}
|
|
40
56
|
//# sourceMappingURL=adminRunJob.js.map
|
|
41
|
-
//# debugId=
|
|
57
|
+
//# debugId=9e24b959-f623-5d96-8bf9-a14cd7bd2654
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adminRunJob.js","sources":["services/adminRunJob.ts"],"sourceRoot":"/","sourcesContent":["import type { Prisma, RunJobStatus, RunJobType } from '@prisma/client';\nimport { TRPCError } from '@trpc/server';\nimport { prisma } from '../lib/prisma.js';\n\nexport async function listRunJobsForAdmin(input: {\n page: number;\n pageSize: number;\n status?: RunJobStatus;\n type?: RunJobType;\n}) {\n const { page, pageSize, status, type } = input;\n const skip = page * pageSize;\n\n const where: Prisma.RunJobWhereInput = {};\n if (status) where.status = status;\n if (type) where.type = type;\n\n const [items, total] = await Promise.all([\n prisma.runJob.findMany({\n where,\n orderBy: { createdAt: 'desc' },\n skip,\n take: pageSize,\n }),\n prisma.runJob.count({ where }),\n ]);\n\n return {\n items,\n total,\n page,\n pageSize,\n pageCount: Math.max(1, Math.ceil(total / pageSize)),\n };\n}\n\nexport async function getRunJobForAdmin(id: string) {\n const job = await prisma.runJob.findUnique({ where: { id } });\n if (!job) {\n throw new TRPCError({\n code: 'NOT_FOUND',\n message: 'Run job not found',\n });\n }\n return job;\n}\n"],"names":[],"mappings":";;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"adminRunJob.js","sources":["services/adminRunJob.ts"],"sourceRoot":"/","sourcesContent":["import type { Prisma, RunJobStatus, RunJobType } from '@prisma/client';\nimport { TRPCError } from '@trpc/server';\nimport { prisma } from '../lib/prisma.js';\nimport { enqueueRunJob, type JobInputs } from '../workers/queues.js';\n\nexport async function listRunJobsForAdmin(input: {\n page: number;\n pageSize: number;\n status?: RunJobStatus;\n type?: RunJobType;\n}) {\n const { page, pageSize, status, type } = input;\n const skip = page * pageSize;\n\n const where: Prisma.RunJobWhereInput = {};\n if (status) where.status = status;\n if (type) where.type = type;\n\n const [items, total] = await Promise.all([\n prisma.runJob.findMany({\n where,\n orderBy: { createdAt: 'desc' },\n skip,\n take: pageSize,\n }),\n prisma.runJob.count({ where }),\n ]);\n\n return {\n items,\n total,\n page,\n pageSize,\n pageCount: Math.max(1, Math.ceil(total / pageSize)),\n };\n}\n\nexport async function getRunJobForAdmin(id: string) {\n const job = await prisma.runJob.findUnique({ where: { id } });\n if (!job) {\n throw new TRPCError({\n code: 'NOT_FOUND',\n message: 'Run job not found',\n });\n }\n return job;\n}\n\n/**\n * Re-enqueue a FAILED or CANCELLED job as a fresh RunJob row with the same\n * type/input. The original row is left untouched for audit purposes.\n */\nexport async function retryRunJobForAdmin(id: string) {\n const job = await getRunJobForAdmin(id);\n\n if (job.status !== 'FAILED' && job.status !== 'CANCELLED') {\n throw new TRPCError({\n code: 'PRECONDITION_FAILED',\n message: `Only FAILED or CANCELLED jobs can be retried (status: ${job.status})`,\n });\n }\n\n const { runJobId, bullJobId } = await enqueueRunJob(\n job.type,\n job.input as JobInputs[typeof job.type],\n { classId: job.classId, userId: job.userId },\n );\n\n return { runJobId, bullJobId, retriedFrom: job.id };\n}\n"],"names":[],"mappings":";;AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAkB,MAAM,sBAAsB,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAKzC;IACC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC;IAE7B,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,IAAI,MAAM;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAClC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IAE5B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACrB,KAAK;YACL,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;YAC9B,IAAI;YACJ,IAAI,EAAE,QAAQ;SACf,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;KAC/B,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAU;IAChD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,SAAS,CAAC;YAClB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,mBAAmB;SAC7B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAU;IAClD,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAExC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC1D,MAAM,IAAI,SAAS,CAAC;YAClB,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,yDAAyD,GAAG,CAAC,MAAM,GAAG;SAChF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,aAAa,CACjD,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,KAAmC,EACvC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAC7C,CAAC;IAEF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACtD,CAAC","debug_id":"9e24b959-f623-5d96-8bf9-a14cd7bd2654"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export declare function searchUsersForAdmin(input: {
|
|
2
|
+
page: number;
|
|
3
|
+
pageSize: number;
|
|
4
|
+
query?: string;
|
|
5
|
+
}): Promise<{
|
|
6
|
+
items: {
|
|
7
|
+
school: {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
} | null;
|
|
11
|
+
id: string;
|
|
12
|
+
username: string;
|
|
13
|
+
email: string;
|
|
14
|
+
verified: boolean;
|
|
15
|
+
_count: {
|
|
16
|
+
teacherIn: number;
|
|
17
|
+
studentIn: number;
|
|
18
|
+
sessions: number;
|
|
19
|
+
};
|
|
20
|
+
}[];
|
|
21
|
+
total: number;
|
|
22
|
+
page: number;
|
|
23
|
+
pageSize: number;
|
|
24
|
+
pageCount: number;
|
|
25
|
+
}>;
|
|
26
|
+
export declare function getUserForAdmin(id: string): Promise<{
|
|
27
|
+
school: {
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
subdomain: string | null;
|
|
31
|
+
} | null;
|
|
32
|
+
id: string;
|
|
33
|
+
username: string;
|
|
34
|
+
email: string;
|
|
35
|
+
verified: boolean;
|
|
36
|
+
termsAcceptedAt: Date | null;
|
|
37
|
+
termsVersion: string | null;
|
|
38
|
+
profile: {
|
|
39
|
+
displayName: string | null;
|
|
40
|
+
location: string | null;
|
|
41
|
+
createdAt: Date;
|
|
42
|
+
} | null;
|
|
43
|
+
sessions: {
|
|
44
|
+
type: import(".prisma/client").$Enums.SessionType;
|
|
45
|
+
id: string;
|
|
46
|
+
createdAt: Date | null;
|
|
47
|
+
expiresAt: Date | null;
|
|
48
|
+
}[];
|
|
49
|
+
schoolMemberships: {
|
|
50
|
+
status: import(".prisma/client").$Enums.SchoolMembershipStatus;
|
|
51
|
+
school: {
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
};
|
|
55
|
+
id: string;
|
|
56
|
+
createdAt: Date;
|
|
57
|
+
role: import(".prisma/client").$Enums.SchoolMembershipRole;
|
|
58
|
+
}[];
|
|
59
|
+
_count: {
|
|
60
|
+
teacherIn: number;
|
|
61
|
+
studentIn: number;
|
|
62
|
+
submissions: number;
|
|
63
|
+
sessions: number;
|
|
64
|
+
files: number;
|
|
65
|
+
};
|
|
66
|
+
}>;
|
|
67
|
+
//# sourceMappingURL=adminUser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminUser.d.ts","sourceRoot":"/","sources":["services/adminUser.ts"],"names":[],"mappings":"AAIA,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;;;;;;;;;;GAsCA;AAED,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4C/C"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="822d0af5-d814-5fdc-ba6b-21fe1cafebb4")}catch(e){}}();
|
|
3
|
+
import { TRPCError } from '@trpc/server';
|
|
4
|
+
import { prisma } from '../lib/prisma.js';
|
|
5
|
+
export async function searchUsersForAdmin(input) {
|
|
6
|
+
const skip = input.page * input.pageSize;
|
|
7
|
+
const where = {};
|
|
8
|
+
const q = input.query?.trim();
|
|
9
|
+
if (q) {
|
|
10
|
+
where.OR = [
|
|
11
|
+
{ username: { contains: q, mode: 'insensitive' } },
|
|
12
|
+
{ email: { contains: q, mode: 'insensitive' } },
|
|
13
|
+
];
|
|
14
|
+
}
|
|
15
|
+
const [items, total] = await Promise.all([
|
|
16
|
+
prisma.user.findMany({
|
|
17
|
+
where,
|
|
18
|
+
orderBy: { username: 'asc' },
|
|
19
|
+
skip,
|
|
20
|
+
take: input.pageSize,
|
|
21
|
+
select: {
|
|
22
|
+
id: true,
|
|
23
|
+
username: true,
|
|
24
|
+
email: true,
|
|
25
|
+
verified: true,
|
|
26
|
+
school: { select: { id: true, name: true } },
|
|
27
|
+
_count: {
|
|
28
|
+
select: { teacherIn: true, studentIn: true, sessions: true },
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
}),
|
|
32
|
+
prisma.user.count({ where }),
|
|
33
|
+
]);
|
|
34
|
+
return {
|
|
35
|
+
items,
|
|
36
|
+
total,
|
|
37
|
+
page: input.page,
|
|
38
|
+
pageSize: input.pageSize,
|
|
39
|
+
pageCount: Math.max(1, Math.ceil(total / input.pageSize)),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
export async function getUserForAdmin(id) {
|
|
43
|
+
const user = await prisma.user.findUnique({
|
|
44
|
+
where: { id },
|
|
45
|
+
select: {
|
|
46
|
+
id: true,
|
|
47
|
+
username: true,
|
|
48
|
+
email: true,
|
|
49
|
+
verified: true,
|
|
50
|
+
termsAcceptedAt: true,
|
|
51
|
+
termsVersion: true,
|
|
52
|
+
profile: {
|
|
53
|
+
select: { displayName: true, location: true, createdAt: true },
|
|
54
|
+
},
|
|
55
|
+
school: { select: { id: true, name: true, subdomain: true } },
|
|
56
|
+
schoolMemberships: {
|
|
57
|
+
select: {
|
|
58
|
+
id: true,
|
|
59
|
+
role: true,
|
|
60
|
+
status: true,
|
|
61
|
+
createdAt: true,
|
|
62
|
+
school: { select: { id: true, name: true } },
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
sessions: {
|
|
66
|
+
orderBy: { createdAt: 'desc' },
|
|
67
|
+
take: 10,
|
|
68
|
+
select: { id: true, type: true, createdAt: true, expiresAt: true },
|
|
69
|
+
},
|
|
70
|
+
_count: {
|
|
71
|
+
select: {
|
|
72
|
+
teacherIn: true,
|
|
73
|
+
studentIn: true,
|
|
74
|
+
sessions: true,
|
|
75
|
+
submissions: true,
|
|
76
|
+
files: true,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
if (!user) {
|
|
82
|
+
throw new TRPCError({ code: 'NOT_FOUND', message: 'User not found' });
|
|
83
|
+
}
|
|
84
|
+
return user;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=adminUser.js.map
|
|
87
|
+
//# debugId=822d0af5-d814-5fdc-ba6b-21fe1cafebb4
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adminUser.js","sources":["services/adminUser.ts"],"sourceRoot":"/","sourcesContent":["import type { Prisma } from '@prisma/client';\nimport { TRPCError } from '@trpc/server';\nimport { prisma } from '../lib/prisma.js';\n\nexport async function searchUsersForAdmin(input: {\n page: number;\n pageSize: number;\n query?: string;\n}) {\n const skip = input.page * input.pageSize;\n const where: Prisma.UserWhereInput = {};\n const q = input.query?.trim();\n if (q) {\n where.OR = [\n { username: { contains: q, mode: 'insensitive' } },\n { email: { contains: q, mode: 'insensitive' } },\n ];\n }\n\n const [items, total] = await Promise.all([\n prisma.user.findMany({\n where,\n orderBy: { username: 'asc' },\n skip,\n take: input.pageSize,\n select: {\n id: true,\n username: true,\n email: true,\n verified: true,\n school: { select: { id: true, name: true } },\n _count: {\n select: { teacherIn: true, studentIn: true, sessions: true },\n },\n },\n }),\n prisma.user.count({ where }),\n ]);\n\n return {\n items,\n total,\n page: input.page,\n pageSize: input.pageSize,\n pageCount: Math.max(1, Math.ceil(total / input.pageSize)),\n };\n}\n\nexport async function getUserForAdmin(id: string) {\n const user = await prisma.user.findUnique({\n where: { id },\n select: {\n id: true,\n username: true,\n email: true,\n verified: true,\n termsAcceptedAt: true,\n termsVersion: true,\n profile: {\n select: { displayName: true, location: true, createdAt: true },\n },\n school: { select: { id: true, name: true, subdomain: true } },\n schoolMemberships: {\n select: {\n id: true,\n role: true,\n status: true,\n createdAt: true,\n school: { select: { id: true, name: true } },\n },\n },\n sessions: {\n orderBy: { createdAt: 'desc' },\n take: 10,\n select: { id: true, type: true, createdAt: true, expiresAt: true },\n },\n _count: {\n select: {\n teacherIn: true,\n studentIn: true,\n sessions: true,\n submissions: true,\n files: true,\n },\n },\n },\n });\n\n if (!user) {\n throw new TRPCError({ code: 'NOT_FOUND', message: 'User not found' });\n }\n return user;\n}\n"],"names":[],"mappings":"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","debug_id":"822d0af5-d814-5fdc-ba6b-21fe1cafebb4"}
|
|
@@ -15,6 +15,8 @@ export declare function getAgenda(userId: string, weekStart: string): Promise<{
|
|
|
15
15
|
discussionsEnabled: boolean;
|
|
16
16
|
studentsCanCreateDiscussions: boolean;
|
|
17
17
|
studentsCanReply: boolean;
|
|
18
|
+
treatMissingAsZero: boolean;
|
|
19
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
18
20
|
} | null;
|
|
19
21
|
assignmentsAttached: {
|
|
20
22
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
@@ -41,6 +43,7 @@ export declare function getAgenda(userId: string, weekStart: string): Promise<{
|
|
|
41
43
|
markSchemeId: string | null;
|
|
42
44
|
order: number | null;
|
|
43
45
|
gradingBoundaryId: string | null;
|
|
46
|
+
gradeCategoryId: string | null;
|
|
44
47
|
}[];
|
|
45
48
|
} & {
|
|
46
49
|
id: string;
|
|
@@ -67,6 +70,8 @@ export declare function getAgenda(userId: string, weekStart: string): Promise<{
|
|
|
67
70
|
discussionsEnabled: boolean;
|
|
68
71
|
studentsCanCreateDiscussions: boolean;
|
|
69
72
|
studentsCanReply: boolean;
|
|
73
|
+
treatMissingAsZero: boolean;
|
|
74
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
70
75
|
} | null;
|
|
71
76
|
assignmentsAttached: {
|
|
72
77
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
@@ -93,6 +98,7 @@ export declare function getAgenda(userId: string, weekStart: string): Promise<{
|
|
|
93
98
|
markSchemeId: string | null;
|
|
94
99
|
order: number | null;
|
|
95
100
|
gradingBoundaryId: string | null;
|
|
101
|
+
gradeCategoryId: string | null;
|
|
96
102
|
}[];
|
|
97
103
|
} & {
|
|
98
104
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agenda.d.ts","sourceRoot":"/","sources":["services/agenda.ts"],"names":[],"mappings":"AAQA,sFAAsF;AACtF,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"agenda.d.ts","sourceRoot":"/","sources":["services/agenda.ts"],"names":[],"mappings":"AAQA,sFAAsF;AACtF,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAWhE"}
|
|
@@ -88,6 +88,7 @@ export declare function getAssignment(id: string, _classId: string): Promise<{
|
|
|
88
88
|
markSchemeId: string | null;
|
|
89
89
|
order: number | null;
|
|
90
90
|
gradingBoundaryId: string | null;
|
|
91
|
+
gradeCategoryId: string | null;
|
|
91
92
|
}>;
|
|
92
93
|
export declare function getSubmission(assignmentId: string, studentId: string): Promise<{
|
|
93
94
|
late: boolean;
|
|
@@ -105,6 +106,8 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
105
106
|
discussionsEnabled: boolean;
|
|
106
107
|
studentsCanCreateDiscussions: boolean;
|
|
107
108
|
studentsCanReply: boolean;
|
|
109
|
+
treatMissingAsZero: boolean;
|
|
110
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
108
111
|
};
|
|
109
112
|
markScheme: {
|
|
110
113
|
id: string;
|
|
@@ -143,6 +146,7 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
143
146
|
markSchemeId: string | null;
|
|
144
147
|
order: number | null;
|
|
145
148
|
gradingBoundaryId: string | null;
|
|
149
|
+
gradeCategoryId: string | null;
|
|
146
150
|
};
|
|
147
151
|
attachments: {
|
|
148
152
|
path: string;
|
|
@@ -240,6 +244,8 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
240
244
|
discussionsEnabled: boolean;
|
|
241
245
|
studentsCanCreateDiscussions: boolean;
|
|
242
246
|
studentsCanReply: boolean;
|
|
247
|
+
treatMissingAsZero: boolean;
|
|
248
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
243
249
|
};
|
|
244
250
|
markScheme: {
|
|
245
251
|
id: string;
|
|
@@ -278,6 +284,7 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
278
284
|
markSchemeId: string | null;
|
|
279
285
|
order: number | null;
|
|
280
286
|
gradingBoundaryId: string | null;
|
|
287
|
+
gradeCategoryId: string | null;
|
|
281
288
|
};
|
|
282
289
|
attachments: {
|
|
283
290
|
path: string;
|
|
@@ -387,6 +394,8 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
387
394
|
discussionsEnabled: boolean;
|
|
388
395
|
studentsCanCreateDiscussions: boolean;
|
|
389
396
|
studentsCanReply: boolean;
|
|
397
|
+
treatMissingAsZero: boolean;
|
|
398
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
390
399
|
};
|
|
391
400
|
markScheme: {
|
|
392
401
|
id: string;
|
|
@@ -421,6 +430,7 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
421
430
|
markSchemeId: string | null;
|
|
422
431
|
order: number | null;
|
|
423
432
|
gradingBoundaryId: string | null;
|
|
433
|
+
gradeCategoryId: string | null;
|
|
424
434
|
};
|
|
425
435
|
attachments: ({
|
|
426
436
|
thumbnail: {
|
|
@@ -592,6 +602,7 @@ export declare function duplicateAssignmentRecord(assignmentId: string, classId:
|
|
|
592
602
|
markSchemeId: string | null;
|
|
593
603
|
order: number | null;
|
|
594
604
|
gradingBoundaryId: string | null;
|
|
605
|
+
gradeCategoryId: string | null;
|
|
595
606
|
}>;
|
|
596
607
|
export declare function updateAssignmentRecord(userId: string, input: {
|
|
597
608
|
id: string;
|
|
@@ -634,6 +645,8 @@ export declare function updateAssignmentRecord(userId: string, input: {
|
|
|
634
645
|
discussionsEnabled: boolean;
|
|
635
646
|
studentsCanCreateDiscussions: boolean;
|
|
636
647
|
studentsCanReply: boolean;
|
|
648
|
+
treatMissingAsZero: boolean;
|
|
649
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
637
650
|
};
|
|
638
651
|
section: {
|
|
639
652
|
id: string;
|
|
@@ -738,6 +751,8 @@ export declare function updateSubmissionRecord(userId: string, input: {
|
|
|
738
751
|
discussionsEnabled: boolean;
|
|
739
752
|
studentsCanCreateDiscussions: boolean;
|
|
740
753
|
studentsCanReply: boolean;
|
|
754
|
+
treatMissingAsZero: boolean;
|
|
755
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
741
756
|
};
|
|
742
757
|
markScheme: {
|
|
743
758
|
id: string;
|
|
@@ -772,6 +787,7 @@ export declare function updateSubmissionRecord(userId: string, input: {
|
|
|
772
787
|
markSchemeId: string | null;
|
|
773
788
|
order: number | null;
|
|
774
789
|
gradingBoundaryId: string | null;
|
|
790
|
+
gradeCategoryId: string | null;
|
|
775
791
|
};
|
|
776
792
|
attachments: {
|
|
777
793
|
path: string;
|
|
@@ -859,6 +875,8 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
859
875
|
discussionsEnabled: boolean;
|
|
860
876
|
studentsCanCreateDiscussions: boolean;
|
|
861
877
|
studentsCanReply: boolean;
|
|
878
|
+
treatMissingAsZero: boolean;
|
|
879
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
862
880
|
};
|
|
863
881
|
markScheme: {
|
|
864
882
|
id: string;
|
|
@@ -893,6 +911,7 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
893
911
|
markSchemeId: string | null;
|
|
894
912
|
order: number | null;
|
|
895
913
|
gradingBoundaryId: string | null;
|
|
914
|
+
gradeCategoryId: string | null;
|
|
896
915
|
};
|
|
897
916
|
attachments: ({
|
|
898
917
|
thumbnail: {
|
|
@@ -1089,6 +1108,7 @@ export declare function attachAssignmentToEventRecord(teacherId: string, assignm
|
|
|
1089
1108
|
markSchemeId: string | null;
|
|
1090
1109
|
order: number | null;
|
|
1091
1110
|
gradingBoundaryId: string | null;
|
|
1111
|
+
gradeCategoryId: string | null;
|
|
1092
1112
|
};
|
|
1093
1113
|
}>;
|
|
1094
1114
|
export declare function detachAssignmentFromEventRecord(teacherId: string, assignmentId: string): Promise<{
|
|
@@ -1138,6 +1158,7 @@ export declare function detachAssignmentFromEventRecord(teacherId: string, assig
|
|
|
1138
1158
|
markSchemeId: string | null;
|
|
1139
1159
|
order: number | null;
|
|
1140
1160
|
gradingBoundaryId: string | null;
|
|
1161
|
+
gradeCategoryId: string | null;
|
|
1141
1162
|
};
|
|
1142
1163
|
}>;
|
|
1143
1164
|
export declare function getAvailableEventsForAssignment(teacherId: string, assignmentId: string): Promise<{
|
|
@@ -1242,6 +1263,7 @@ export declare function attachMarkSchemeRecord(teacherId: string, assignmentId:
|
|
|
1242
1263
|
markSchemeId: string | null;
|
|
1243
1264
|
order: number | null;
|
|
1244
1265
|
gradingBoundaryId: string | null;
|
|
1266
|
+
gradeCategoryId: string | null;
|
|
1245
1267
|
}>;
|
|
1246
1268
|
export declare function detachMarkSchemeRecord(teacherId: string, assignmentId: string): Promise<{
|
|
1247
1269
|
markScheme: {
|
|
@@ -1334,6 +1356,7 @@ export declare function detachMarkSchemeRecord(teacherId: string, assignmentId:
|
|
|
1334
1356
|
markSchemeId: string | null;
|
|
1335
1357
|
order: number | null;
|
|
1336
1358
|
gradingBoundaryId: string | null;
|
|
1359
|
+
gradeCategoryId: string | null;
|
|
1337
1360
|
}>;
|
|
1338
1361
|
export declare function attachGradingBoundaryRecord(teacherId: string, assignmentId: string, gradingBoundaryId: string | null): Promise<{
|
|
1339
1362
|
gradingBoundary: {
|
|
@@ -1426,6 +1449,7 @@ export declare function attachGradingBoundaryRecord(teacherId: string, assignmen
|
|
|
1426
1449
|
markSchemeId: string | null;
|
|
1427
1450
|
order: number | null;
|
|
1428
1451
|
gradingBoundaryId: string | null;
|
|
1452
|
+
gradeCategoryId: string | null;
|
|
1429
1453
|
}>;
|
|
1430
1454
|
export declare function detachGradingBoundaryRecord(teacherId: string, assignmentId: string): Promise<{
|
|
1431
1455
|
gradingBoundary: {
|
|
@@ -1518,6 +1542,7 @@ export declare function detachGradingBoundaryRecord(teacherId: string, assignmen
|
|
|
1518
1542
|
markSchemeId: string | null;
|
|
1519
1543
|
order: number | null;
|
|
1520
1544
|
gradingBoundaryId: string | null;
|
|
1545
|
+
gradeCategoryId: string | null;
|
|
1521
1546
|
}>;
|
|
1522
1547
|
export declare function reorderAssignmentRecord(teacherId: string, input: {
|
|
1523
1548
|
classId: string;
|
|
@@ -1549,6 +1574,7 @@ export declare function reorderAssignmentRecord(teacherId: string, input: {
|
|
|
1549
1574
|
markSchemeId: string | null;
|
|
1550
1575
|
order: number | null;
|
|
1551
1576
|
gradingBoundaryId: string | null;
|
|
1577
|
+
gradeCategoryId: string | null;
|
|
1552
1578
|
} | null>;
|
|
1553
1579
|
export declare function moveAssignmentRecord(teacherId: string, input: {
|
|
1554
1580
|
id: string;
|
|
@@ -1579,5 +1605,6 @@ export declare function moveAssignmentRecord(teacherId: string, input: {
|
|
|
1579
1605
|
markSchemeId: string | null;
|
|
1580
1606
|
order: number | null;
|
|
1581
1607
|
gradingBoundaryId: string | null;
|
|
1608
|
+
gradeCategoryId: string | null;
|
|
1582
1609
|
} | null>;
|
|
1583
1610
|
//# sourceMappingURL=assignment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.d.ts","sourceRoot":"/","sources":["services/assignment.ts"],"names":[],"mappings":"AA+BA,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,MAAM,oBAGhD;AAED,wBAAsB,WAAW;;;;;;;;;;;KAMhC;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"assignment.d.ts","sourceRoot":"/","sources":["services/assignment.ts"],"names":[],"mappings":"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"}
|
package/dist/services/class.d.ts
CHANGED
|
@@ -226,6 +226,8 @@ export declare function getClass(userId: string, classId: string): Promise<{
|
|
|
226
226
|
discussionsEnabled: boolean;
|
|
227
227
|
studentsCanCreateDiscussions: boolean;
|
|
228
228
|
studentsCanReply: boolean;
|
|
229
|
+
treatMissingAsZero: boolean;
|
|
230
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
229
231
|
};
|
|
230
232
|
}>;
|
|
231
233
|
export declare function updateClass(classId: string, data: {
|
|
@@ -296,6 +298,8 @@ export declare function createClass(userId: string, input: {
|
|
|
296
298
|
discussionsEnabled: boolean;
|
|
297
299
|
studentsCanCreateDiscussions: boolean;
|
|
298
300
|
studentsCanReply: boolean;
|
|
301
|
+
treatMissingAsZero: boolean;
|
|
302
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
299
303
|
}>;
|
|
300
304
|
export declare function deleteClass(classId: string): Promise<{
|
|
301
305
|
deletedClass: {
|
|
@@ -328,6 +332,8 @@ export declare function changeRole(classId: string, userId: string, type: "teach
|
|
|
328
332
|
discussionsEnabled: boolean;
|
|
329
333
|
studentsCanCreateDiscussions: boolean;
|
|
330
334
|
studentsCanReply: boolean;
|
|
335
|
+
treatMissingAsZero: boolean;
|
|
336
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
331
337
|
};
|
|
332
338
|
user: {
|
|
333
339
|
type: "student" | "teacher";
|
|
@@ -349,6 +355,8 @@ export declare function removeMember(classId: string, userId: string): Promise<{
|
|
|
349
355
|
discussionsEnabled: boolean;
|
|
350
356
|
studentsCanCreateDiscussions: boolean;
|
|
351
357
|
studentsCanReply: boolean;
|
|
358
|
+
treatMissingAsZero: boolean;
|
|
359
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
352
360
|
};
|
|
353
361
|
removedUserId: string;
|
|
354
362
|
}>;
|
|
@@ -521,6 +529,8 @@ export declare function updateSyllabus(classId: string, contents: string): Promi
|
|
|
521
529
|
discussionsEnabled: boolean;
|
|
522
530
|
studentsCanCreateDiscussions: boolean;
|
|
523
531
|
studentsCanReply: boolean;
|
|
532
|
+
treatMissingAsZero: boolean;
|
|
533
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
524
534
|
}>;
|
|
525
535
|
export declare function listLabDrafts(classId: string, teacherId: string): Promise<{
|
|
526
536
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
@@ -547,6 +557,7 @@ export declare function listLabDrafts(classId: string, teacherId: string): Promi
|
|
|
547
557
|
markSchemeId: string | null;
|
|
548
558
|
order: number | null;
|
|
549
559
|
gradingBoundaryId: string | null;
|
|
560
|
+
gradeCategoryId: string | null;
|
|
550
561
|
}[]>;
|
|
551
562
|
export declare function createLabDraft(classId: string, teacherId: string, input: {
|
|
552
563
|
title: string;
|
|
@@ -584,6 +595,7 @@ export declare function createLabDraft(classId: string, teacherId: string, input
|
|
|
584
595
|
markSchemeId: string | null;
|
|
585
596
|
order: number | null;
|
|
586
597
|
gradingBoundaryId: string | null;
|
|
598
|
+
gradeCategoryId: string | null;
|
|
587
599
|
}>;
|
|
588
600
|
export declare function updateLabDraft(classId: string, teacherId: string, draftId: string, input: Record<string, unknown>): Promise<{
|
|
589
601
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
@@ -610,6 +622,7 @@ export declare function updateLabDraft(classId: string, teacherId: string, draft
|
|
|
610
622
|
markSchemeId: string | null;
|
|
611
623
|
order: number | null;
|
|
612
624
|
gradingBoundaryId: string | null;
|
|
625
|
+
gradeCategoryId: string | null;
|
|
613
626
|
}>;
|
|
614
627
|
export declare function deleteLabDraft(classId: string, teacherId: string, draftId: string): Promise<{
|
|
615
628
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
@@ -636,6 +649,7 @@ export declare function deleteLabDraft(classId: string, teacherId: string, draft
|
|
|
636
649
|
markSchemeId: string | null;
|
|
637
650
|
order: number | null;
|
|
638
651
|
gradingBoundaryId: string | null;
|
|
652
|
+
gradeCategoryId: string | null;
|
|
639
653
|
}>;
|
|
640
654
|
export declare function publishLabDraft(classId: string, teacherId: string, draftId: string, input: {
|
|
641
655
|
dueDate?: Date;
|
|
@@ -667,6 +681,7 @@ export declare function publishLabDraft(classId: string, teacherId: string, draf
|
|
|
667
681
|
markSchemeId: string | null;
|
|
668
682
|
order: number | null;
|
|
669
683
|
gradingBoundaryId: string | null;
|
|
684
|
+
gradeCategoryId: string | null;
|
|
670
685
|
}>;
|
|
671
686
|
export declare function getFiles(classId: string): Promise<{
|
|
672
687
|
id: string;
|
|
@@ -804,6 +819,8 @@ export declare function exportClass(classId: string, userId: string): Promise<{
|
|
|
804
819
|
discussionsEnabled: boolean;
|
|
805
820
|
studentsCanCreateDiscussions: boolean;
|
|
806
821
|
studentsCanReply: boolean;
|
|
822
|
+
treatMissingAsZero: boolean;
|
|
823
|
+
gradeRoundingMode: import(".prisma/client").$Enums.GradeRoundingMode;
|
|
807
824
|
}>;
|
|
808
825
|
export declare function importClass(classId: string, userId: string, year: number, classData: Class & {
|
|
809
826
|
classFiles: Folder | null;
|