@studious-lms/server 1.4.6 → 1.4.9
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/.github/workflows/npm.yml +28 -0
- package/dist/models/access.d.ts +112 -0
- package/dist/models/access.d.ts.map +1 -0
- package/dist/models/access.js +49 -0
- package/dist/models/access.js.map +1 -0
- package/dist/models/announcement.d.ts +17 -2
- package/dist/models/announcement.d.ts.map +1 -1
- package/dist/models/announcement.js +21 -4
- package/dist/models/announcement.js.map +1 -1
- package/dist/models/assignment.d.ts +69 -37
- package/dist/models/assignment.d.ts.map +1 -1
- package/dist/models/assignment.js +124 -15
- package/dist/models/assignment.js.map +1 -1
- package/dist/models/attendance.d.ts +1 -1
- package/dist/models/attendance.d.ts.map +1 -1
- package/dist/models/attendance.js +6 -5
- package/dist/models/attendance.js.map +1 -1
- package/dist/models/auth.d.ts +5 -5
- package/dist/models/auth.d.ts.map +1 -1
- package/dist/models/auth.js +7 -11
- package/dist/models/auth.js.map +1 -1
- package/dist/models/class.d.ts +26 -26
- package/dist/models/class.d.ts.map +1 -1
- package/dist/models/class.js +7 -11
- package/dist/models/class.js.map +1 -1
- package/dist/models/comment.d.ts +134 -70
- package/dist/models/comment.d.ts.map +1 -1
- package/dist/models/comment.js +30 -42
- package/dist/models/comment.js.map +1 -1
- package/dist/models/conversation.d.ts +7 -7
- package/dist/models/event.d.ts +52 -3
- package/dist/models/event.d.ts.map +1 -1
- package/dist/models/event.js +56 -6
- package/dist/models/event.js.map +1 -1
- package/dist/models/file.d.ts +178 -103
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/file.js +54 -14
- package/dist/models/file.js.map +1 -1
- package/dist/models/folder.d.ts +22 -22
- package/dist/models/folder.d.ts.map +1 -1
- package/dist/models/folder.js +5 -4
- package/dist/models/folder.js.map +1 -1
- package/dist/models/labChat.d.ts +20 -20
- package/dist/models/labChat.d.ts.map +1 -1
- package/dist/models/labChat.js +8 -10
- package/dist/models/labChat.js.map +1 -1
- package/dist/models/marketing.d.ts +1 -1
- package/dist/models/message.d.ts +6 -6
- package/dist/models/newtonChat.d.ts +5 -5
- package/dist/models/school.d.ts +361 -0
- package/dist/models/school.d.ts.map +1 -0
- package/dist/models/school.js +314 -0
- package/dist/models/school.js.map +1 -0
- package/dist/models/section.d.ts +1 -1
- package/dist/models/section.d.ts.map +1 -1
- package/dist/models/section.js +5 -4
- package/dist/models/section.js.map +1 -1
- package/dist/models/user.d.ts +4 -4
- package/dist/models/worksheet.d.ts +163 -141
- package/dist/models/worksheet.d.ts.map +1 -1
- package/dist/models/worksheet.js +42 -17
- package/dist/models/worksheet.js.map +1 -1
- package/dist/pipelines/gradeWorksheet.d.ts +2 -2
- package/dist/pipelines/pdfToWorksheet.d.ts +1 -1
- package/dist/routers/_app.d.ts +1271 -327
- 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/announcement.d.ts +5 -5
- package/dist/routers/announcement.d.ts.map +1 -1
- package/dist/routers/announcement.js +25 -5
- package/dist/routers/announcement.js.map +1 -1
- package/dist/routers/assignment.d.ts +79 -44
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/assignment.js +32 -12
- package/dist/routers/assignment.js.map +1 -1
- package/dist/routers/class.d.ts +40 -20
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/class.js +3 -2
- package/dist/routers/class.js.map +1 -1
- package/dist/routers/comment.d.ts +5 -5
- package/dist/routers/conversation.d.ts +6 -6
- package/dist/routers/event.d.ts +21 -2
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/file.d.ts +2 -2
- package/dist/routers/folder.d.ts +24 -24
- package/dist/routers/labChat.d.ts +7 -7
- package/dist/routers/school.d.ts +384 -0
- package/dist/routers/school.d.ts.map +1 -0
- package/dist/routers/school.js +79 -0
- package/dist/routers/school.js.map +1 -0
- package/dist/routers/search.d.ts +1 -1
- package/dist/routers/worksheet.d.ts +36 -20
- package/dist/routers/worksheet.d.ts.map +1 -1
- package/dist/routers/worksheet.js +10 -3
- package/dist/routers/worksheet.js.map +1 -1
- package/dist/services/announcement.d.ts.map +1 -1
- package/dist/services/announcement.js +10 -6
- package/dist/services/announcement.js.map +1 -1
- package/dist/services/assignment.d.ts +66 -36
- package/dist/services/assignment.d.ts.map +1 -1
- package/dist/services/assignment.js +37 -3
- package/dist/services/assignment.js.map +1 -1
- package/dist/services/class.d.ts +39 -19
- package/dist/services/class.d.ts.map +1 -1
- package/dist/services/class.js +52 -15
- package/dist/services/class.js.map +1 -1
- package/dist/services/comment.d.ts +5 -5
- package/dist/services/comment.d.ts.map +1 -1
- package/dist/services/comment.js +8 -3
- package/dist/services/comment.js.map +1 -1
- package/dist/services/conversation.d.ts +6 -6
- package/dist/services/event.d.ts +21 -2
- package/dist/services/event.d.ts.map +1 -1
- package/dist/services/event.js +11 -7
- package/dist/services/event.js.map +1 -1
- package/dist/services/file.d.ts +2 -2
- package/dist/services/file.d.ts.map +1 -1
- package/dist/services/file.js +17 -8
- package/dist/services/file.js.map +1 -1
- package/dist/services/folder.d.ts +24 -24
- package/dist/services/labChat.d.ts +7 -7
- package/dist/services/school.d.ts +299 -0
- package/dist/services/school.d.ts.map +1 -0
- package/dist/services/school.js +225 -0
- package/dist/services/school.js.map +1 -0
- package/dist/services/worksheet.d.ts +31 -20
- package/dist/services/worksheet.d.ts.map +1 -1
- package/dist/services/worksheet.js +37 -3
- package/dist/services/worksheet.js.map +1 -1
- package/package.json +1 -1
- package/prisma/migrations/20260504071500_school_memberships/migration.sql +81 -0
- package/prisma/schema.prisma +66 -2
- package/src/models/access.ts +48 -0
- package/src/models/announcement.ts +19 -2
- package/src/models/assignment.ts +149 -13
- package/src/models/attendance.ts +4 -3
- package/src/models/auth.ts +8 -9
- package/src/models/class.ts +8 -9
- package/src/models/comment.ts +29 -40
- package/src/models/event.ts +54 -4
- package/src/models/file.ts +53 -12
- package/src/models/folder.ts +3 -2
- package/src/models/labChat.ts +9 -8
- package/src/models/school.ts +361 -0
- package/src/models/section.ts +3 -2
- package/src/models/worksheet.ts +61 -12
- package/src/routers/_app.ts +2 -0
- package/src/routers/announcement.ts +30 -4
- package/src/routers/assignment.ts +46 -9
- package/src/routers/class.ts +1 -0
- package/src/routers/school.ts +122 -0
- package/src/routers/worksheet.ts +18 -0
- package/src/services/announcement.ts +12 -4
- package/src/services/assignment.ts +47 -1
- package/src/services/class.ts +61 -14
- package/src/services/comment.ts +10 -1
- package/src/services/event.ts +23 -6
- package/src/services/file.ts +20 -6
- package/src/services/school.ts +308 -0
- package/src/services/worksheet.ts +46 -0
- package/dist/lib/notificationHandler.d.ts +0 -25
- package/dist/lib/notificationHandler.d.ts.map +0 -1
- package/dist/lib/notificationHandler.js +0 -32
- package/dist/lib/notificationHandler.js.map +0 -1
- package/dist/server/pipelines/aiLabChat.d.ts +0 -21
- package/dist/server/pipelines/aiLabChat.d.ts.map +0 -1
- package/dist/server/pipelines/aiLabChat.js +0 -456
- package/dist/server/pipelines/aiLabChat.js.map +0 -1
- package/dist/server/pipelines/aiNewtonChat.d.ts +0 -30
- package/dist/server/pipelines/aiNewtonChat.d.ts.map +0 -1
- package/dist/server/pipelines/aiNewtonChat.js +0 -285
- package/dist/server/pipelines/aiNewtonChat.js.map +0 -1
- package/dist/server/pipelines/gradeWorksheet.d.ts +0 -30
- package/dist/server/pipelines/gradeWorksheet.d.ts.map +0 -1
- package/dist/server/pipelines/gradeWorksheet.js +0 -248
- package/dist/server/pipelines/gradeWorksheet.js.map +0 -1
|
@@ -16,12 +16,6 @@ export declare function getAssignment(id: string, _classId: string): Promise<{
|
|
|
16
16
|
name: string;
|
|
17
17
|
id: string;
|
|
18
18
|
}[];
|
|
19
|
-
submissions: {
|
|
20
|
-
student: {
|
|
21
|
-
id: string;
|
|
22
|
-
username: string;
|
|
23
|
-
};
|
|
24
|
-
}[];
|
|
25
19
|
class: {
|
|
26
20
|
name: string;
|
|
27
21
|
id: string;
|
|
@@ -30,6 +24,12 @@ export declare function getAssignment(id: string, _classId: string): Promise<{
|
|
|
30
24
|
name: string;
|
|
31
25
|
id: string;
|
|
32
26
|
} | null;
|
|
27
|
+
submissions: {
|
|
28
|
+
student: {
|
|
29
|
+
id: string;
|
|
30
|
+
username: string;
|
|
31
|
+
};
|
|
32
|
+
}[];
|
|
33
33
|
markScheme: {
|
|
34
34
|
id: string;
|
|
35
35
|
structured: string;
|
|
@@ -144,8 +144,8 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
144
144
|
type: string;
|
|
145
145
|
name: string;
|
|
146
146
|
id: string;
|
|
147
|
-
size: number | null;
|
|
148
147
|
userId: string | null;
|
|
148
|
+
size: number | null;
|
|
149
149
|
uploadedAt: Date | null;
|
|
150
150
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
151
151
|
uploadUrl: string | null;
|
|
@@ -172,8 +172,8 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
172
172
|
type: string;
|
|
173
173
|
name: string;
|
|
174
174
|
id: string;
|
|
175
|
-
size: number | null;
|
|
176
175
|
userId: string | null;
|
|
176
|
+
size: number | null;
|
|
177
177
|
uploadedAt: Date | null;
|
|
178
178
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
179
179
|
uploadUrl: string | null;
|
|
@@ -200,8 +200,8 @@ export declare function getSubmission(assignmentId: string, studentId: string):
|
|
|
200
200
|
username: string;
|
|
201
201
|
};
|
|
202
202
|
id: string;
|
|
203
|
-
assignmentId: string;
|
|
204
203
|
createdAt: Date;
|
|
204
|
+
assignmentId: string;
|
|
205
205
|
modifiedAt: Date;
|
|
206
206
|
studentId: string;
|
|
207
207
|
extendedResponse: string | null;
|
|
@@ -270,8 +270,8 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
270
270
|
type: string;
|
|
271
271
|
name: string;
|
|
272
272
|
id: string;
|
|
273
|
-
size: number | null;
|
|
274
273
|
userId: string | null;
|
|
274
|
+
size: number | null;
|
|
275
275
|
uploadedAt: Date | null;
|
|
276
276
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
277
277
|
uploadUrl: string | null;
|
|
@@ -298,8 +298,8 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
298
298
|
type: string;
|
|
299
299
|
name: string;
|
|
300
300
|
id: string;
|
|
301
|
-
size: number | null;
|
|
302
301
|
userId: string | null;
|
|
302
|
+
size: number | null;
|
|
303
303
|
uploadedAt: Date | null;
|
|
304
304
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
305
305
|
uploadUrl: string | null;
|
|
@@ -326,10 +326,10 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
326
326
|
username: string;
|
|
327
327
|
profile: {
|
|
328
328
|
id: string;
|
|
329
|
-
userId: string;
|
|
330
329
|
createdAt: Date;
|
|
331
|
-
location: string | null;
|
|
332
330
|
updatedAt: Date;
|
|
331
|
+
userId: string;
|
|
332
|
+
location: string | null;
|
|
333
333
|
displayName: string | null;
|
|
334
334
|
bio: string | null;
|
|
335
335
|
website: string | null;
|
|
@@ -338,8 +338,8 @@ export declare function getSubmissionById(submissionId: string, classId: string,
|
|
|
338
338
|
} | null;
|
|
339
339
|
};
|
|
340
340
|
id: string;
|
|
341
|
-
assignmentId: string;
|
|
342
341
|
createdAt: Date;
|
|
342
|
+
assignmentId: string;
|
|
343
343
|
modifiedAt: Date;
|
|
344
344
|
studentId: string;
|
|
345
345
|
extendedResponse: string | null;
|
|
@@ -405,8 +405,8 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
405
405
|
type: string;
|
|
406
406
|
name: string;
|
|
407
407
|
id: string;
|
|
408
|
-
size: number | null;
|
|
409
408
|
userId: string | null;
|
|
409
|
+
size: number | null;
|
|
410
410
|
uploadedAt: Date | null;
|
|
411
411
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
412
412
|
uploadUrl: string | null;
|
|
@@ -433,8 +433,8 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
433
433
|
type: string;
|
|
434
434
|
name: string;
|
|
435
435
|
id: string;
|
|
436
|
-
size: number | null;
|
|
437
436
|
userId: string | null;
|
|
437
|
+
size: number | null;
|
|
438
438
|
uploadedAt: Date | null;
|
|
439
439
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
440
440
|
uploadUrl: string | null;
|
|
@@ -466,8 +466,8 @@ export declare function getSubmissions(assignmentId: string, teacherId: string):
|
|
|
466
466
|
} | null;
|
|
467
467
|
};
|
|
468
468
|
id: string;
|
|
469
|
-
assignmentId: string;
|
|
470
469
|
createdAt: Date;
|
|
470
|
+
assignmentId: string;
|
|
471
471
|
modifiedAt: Date;
|
|
472
472
|
studentId: string;
|
|
473
473
|
extendedResponse: string | null;
|
|
@@ -536,6 +536,36 @@ export declare function createAssignmentRecord(userId: string, input: {
|
|
|
536
536
|
id: string;
|
|
537
537
|
}[];
|
|
538
538
|
}>;
|
|
539
|
+
/**
|
|
540
|
+
* Duplicate an assignment into another class. Caller must teach both the source assignment’s
|
|
541
|
+
* class and the target class.
|
|
542
|
+
*/
|
|
543
|
+
export declare function duplicateAssignmentRecord(assignmentId: string, classId: string, title: string, userId: string): Promise<{
|
|
544
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
545
|
+
id: string;
|
|
546
|
+
createdAt: Date | null;
|
|
547
|
+
modifiedAt: Date | null;
|
|
548
|
+
classId: string;
|
|
549
|
+
title: string;
|
|
550
|
+
instructions: string;
|
|
551
|
+
dueDate: Date;
|
|
552
|
+
teacherId: string;
|
|
553
|
+
acceptFiles: boolean;
|
|
554
|
+
acceptExtendedResponse: boolean;
|
|
555
|
+
acceptWorksheet: boolean;
|
|
556
|
+
gradeWithAI: boolean;
|
|
557
|
+
aiPolicyLevel: number;
|
|
558
|
+
sectionId: string | null;
|
|
559
|
+
graded: boolean;
|
|
560
|
+
maxGrade: number | null;
|
|
561
|
+
weight: number;
|
|
562
|
+
inProgress: boolean;
|
|
563
|
+
template: boolean;
|
|
564
|
+
eventId: string | null;
|
|
565
|
+
markSchemeId: string | null;
|
|
566
|
+
order: number | null;
|
|
567
|
+
gradingBoundaryId: string | null;
|
|
568
|
+
}>;
|
|
539
569
|
export declare function updateAssignmentRecord(userId: string, input: {
|
|
540
570
|
id: string;
|
|
541
571
|
classId: string;
|
|
@@ -565,12 +595,7 @@ export declare function updateAssignmentRecord(userId: string, input: {
|
|
|
565
595
|
}): Promise<{
|
|
566
596
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
567
597
|
id: string;
|
|
568
|
-
|
|
569
|
-
student: {
|
|
570
|
-
id: string;
|
|
571
|
-
username: string;
|
|
572
|
-
};
|
|
573
|
-
}[];
|
|
598
|
+
createdAt: Date | null;
|
|
574
599
|
class: {
|
|
575
600
|
name: string;
|
|
576
601
|
id: string;
|
|
@@ -587,7 +612,12 @@ export declare function updateAssignmentRecord(userId: string, input: {
|
|
|
587
612
|
classId: string;
|
|
588
613
|
order: number | null;
|
|
589
614
|
} | null;
|
|
590
|
-
|
|
615
|
+
submissions: {
|
|
616
|
+
student: {
|
|
617
|
+
id: string;
|
|
618
|
+
username: string;
|
|
619
|
+
};
|
|
620
|
+
}[];
|
|
591
621
|
title: string;
|
|
592
622
|
instructions: string;
|
|
593
623
|
dueDate: Date;
|
|
@@ -617,8 +647,8 @@ export declare function updateAssignmentRecord(userId: string, input: {
|
|
|
617
647
|
type: string;
|
|
618
648
|
name: string;
|
|
619
649
|
id: string;
|
|
620
|
-
size: number | null;
|
|
621
650
|
userId: string | null;
|
|
651
|
+
size: number | null;
|
|
622
652
|
uploadedAt: Date | null;
|
|
623
653
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
624
654
|
uploadUrl: string | null;
|
|
@@ -708,8 +738,8 @@ export declare function updateSubmissionRecord(userId: string, input: {
|
|
|
708
738
|
type: string;
|
|
709
739
|
name: string;
|
|
710
740
|
id: string;
|
|
711
|
-
size: number | null;
|
|
712
741
|
userId: string | null;
|
|
742
|
+
size: number | null;
|
|
713
743
|
uploadedAt: Date | null;
|
|
714
744
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
715
745
|
uploadUrl: string | null;
|
|
@@ -737,8 +767,8 @@ export declare function updateSubmissionRecord(userId: string, input: {
|
|
|
737
767
|
};
|
|
738
768
|
} & {
|
|
739
769
|
id: string;
|
|
740
|
-
assignmentId: string;
|
|
741
770
|
createdAt: Date;
|
|
771
|
+
assignmentId: string;
|
|
742
772
|
modifiedAt: Date;
|
|
743
773
|
studentId: string;
|
|
744
774
|
extendedResponse: string | null;
|
|
@@ -823,8 +853,8 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
823
853
|
type: string;
|
|
824
854
|
name: string;
|
|
825
855
|
id: string;
|
|
826
|
-
size: number | null;
|
|
827
856
|
userId: string | null;
|
|
857
|
+
size: number | null;
|
|
828
858
|
uploadedAt: Date | null;
|
|
829
859
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
830
860
|
uploadUrl: string | null;
|
|
@@ -851,8 +881,8 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
851
881
|
type: string;
|
|
852
882
|
name: string;
|
|
853
883
|
id: string;
|
|
854
|
-
size: number | null;
|
|
855
884
|
userId: string | null;
|
|
885
|
+
size: number | null;
|
|
856
886
|
uploadedAt: Date | null;
|
|
857
887
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
858
888
|
uploadUrl: string | null;
|
|
@@ -880,8 +910,8 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
880
910
|
type: string;
|
|
881
911
|
name: string;
|
|
882
912
|
id: string;
|
|
883
|
-
size: number | null;
|
|
884
913
|
userId: string | null;
|
|
914
|
+
size: number | null;
|
|
885
915
|
uploadedAt: Date | null;
|
|
886
916
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
887
917
|
uploadUrl: string | null;
|
|
@@ -908,8 +938,8 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
908
938
|
type: string;
|
|
909
939
|
name: string;
|
|
910
940
|
id: string;
|
|
911
|
-
size: number | null;
|
|
912
941
|
userId: string | null;
|
|
942
|
+
size: number | null;
|
|
913
943
|
uploadedAt: Date | null;
|
|
914
944
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
915
945
|
uploadUrl: string | null;
|
|
@@ -942,8 +972,8 @@ export declare function updateSubmissionAsTeacherRecord(teacherId: string, input
|
|
|
942
972
|
};
|
|
943
973
|
} & {
|
|
944
974
|
id: string;
|
|
945
|
-
assignmentId: string;
|
|
946
975
|
createdAt: Date;
|
|
976
|
+
assignmentId: string;
|
|
947
977
|
modifiedAt: Date;
|
|
948
978
|
studentId: string;
|
|
949
979
|
extendedResponse: string | null;
|
|
@@ -1093,8 +1123,8 @@ export declare function attachMarkSchemeRecord(teacherId: string, assignmentId:
|
|
|
1093
1123
|
type: string;
|
|
1094
1124
|
name: string;
|
|
1095
1125
|
id: string;
|
|
1096
|
-
size: number | null;
|
|
1097
1126
|
userId: string | null;
|
|
1127
|
+
size: number | null;
|
|
1098
1128
|
uploadedAt: Date | null;
|
|
1099
1129
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1100
1130
|
uploadUrl: string | null;
|
|
@@ -1180,8 +1210,8 @@ export declare function detachMarkSchemeRecord(teacherId: string, assignmentId:
|
|
|
1180
1210
|
type: string;
|
|
1181
1211
|
name: string;
|
|
1182
1212
|
id: string;
|
|
1183
|
-
size: number | null;
|
|
1184
1213
|
userId: string | null;
|
|
1214
|
+
size: number | null;
|
|
1185
1215
|
uploadedAt: Date | null;
|
|
1186
1216
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1187
1217
|
uploadUrl: string | null;
|
|
@@ -1267,8 +1297,8 @@ export declare function attachGradingBoundaryRecord(teacherId: string, assignmen
|
|
|
1267
1297
|
type: string;
|
|
1268
1298
|
name: string;
|
|
1269
1299
|
id: string;
|
|
1270
|
-
size: number | null;
|
|
1271
1300
|
userId: string | null;
|
|
1301
|
+
size: number | null;
|
|
1272
1302
|
uploadedAt: Date | null;
|
|
1273
1303
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1274
1304
|
uploadUrl: string | null;
|
|
@@ -1354,8 +1384,8 @@ export declare function detachGradingBoundaryRecord(teacherId: string, assignmen
|
|
|
1354
1384
|
type: string;
|
|
1355
1385
|
name: string;
|
|
1356
1386
|
id: string;
|
|
1357
|
-
size: number | null;
|
|
1358
1387
|
userId: string | null;
|
|
1388
|
+
size: number | null;
|
|
1359
1389
|
uploadedAt: Date | null;
|
|
1360
1390
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1361
1391
|
uploadUrl: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.d.ts","sourceRoot":"/","sources":["services/assignment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assignment.d.ts","sourceRoot":"/","sources":["services/assignment.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Assignment service – create, read, update, delete assignments and submissions.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
!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]="
|
|
5
|
+
!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]="e58f81df-84b7-5874-8fa8-d1313bfad205")}catch(e){}}();
|
|
6
6
|
import { TRPCError } from "@trpc/server";
|
|
7
7
|
import { prisma } from "../lib/prisma.js";
|
|
8
|
-
import { findAssignmentById, findAssignmentWithDetails, findAssignmentForDelete, findAssignmentsDueToday, findSubmissionByAssignmentAndStudent, findSubmissionByIdForClassMember, findSubmissionForUpdate, findSubmissionForTeacherUpdate, findSubmissionsByAssignmentForTeacher, createSubmission, findSectionsByClassId,
|
|
8
|
+
import { findAssignmentById, findAssignmentWithDetails, findAssignmentWithClassForTeacher, findAssignmentForDelete, findAssignmentsDueToday, findSubmissionByAssignmentAndStudent, findSubmissionByIdForClassMember, findSubmissionForUpdate, findSubmissionForTeacherUpdate, findSubmissionsByAssignmentForTeacher, createSubmission, findSectionsByClassId, findAvailableEventsForAssignment, attachAssignmentToEvent, detachAssignmentFromEvent, duplicateAssignment, } from "../models/assignment.js";
|
|
9
9
|
import { createDirectUploadFiles } from "../lib/fileUpload.js";
|
|
10
10
|
import { deleteFile } from "../lib/googleCloudStorage.js";
|
|
11
11
|
import { gradeWorksheetPipeline } from "../pipelines/gradeWorksheet.js";
|
|
@@ -219,6 +219,40 @@ export async function createAssignmentRecord(userId, input) {
|
|
|
219
219
|
});
|
|
220
220
|
return assignment;
|
|
221
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Duplicate an assignment into another class. Caller must teach both the source assignment’s
|
|
224
|
+
* class and the target class.
|
|
225
|
+
*/
|
|
226
|
+
export async function duplicateAssignmentRecord(assignmentId, classId, title, userId) {
|
|
227
|
+
const source = await findAssignmentWithClassForTeacher(assignmentId, userId);
|
|
228
|
+
if (!source) {
|
|
229
|
+
throw new TRPCError({
|
|
230
|
+
code: "NOT_FOUND",
|
|
231
|
+
message: "Assignment not found or you are not a teacher of the class it belongs to",
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
const targetOk = await prisma.class.findFirst({
|
|
235
|
+
where: {
|
|
236
|
+
id: classId,
|
|
237
|
+
teachers: { some: { id: userId } },
|
|
238
|
+
},
|
|
239
|
+
select: { id: true },
|
|
240
|
+
});
|
|
241
|
+
if (!targetOk) {
|
|
242
|
+
throw new TRPCError({
|
|
243
|
+
code: "FORBIDDEN",
|
|
244
|
+
message: "You are not a teacher of the target class",
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
const created = await duplicateAssignment(assignmentId, classId, title, userId);
|
|
248
|
+
if (!created) {
|
|
249
|
+
throw new TRPCError({
|
|
250
|
+
code: "NOT_FOUND",
|
|
251
|
+
message: "Assignment not found or could not be duplicated",
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
return created;
|
|
255
|
+
}
|
|
222
256
|
export async function updateAssignmentRecord(userId, input) {
|
|
223
257
|
const [assignment, classData] = await Promise.all([
|
|
224
258
|
prisma.assignment.findFirst({
|
|
@@ -914,4 +948,4 @@ export async function moveAssignmentRecord(teacherId, input) {
|
|
|
914
948
|
}, { maxWait: 5000, timeout: 10000 });
|
|
915
949
|
}
|
|
916
950
|
//# sourceMappingURL=assignment.js.map
|
|
917
|
-
//# debugId=
|
|
951
|
+
//# debugId=e58f81df-84b7-5874-8fa8-d1313bfad205
|