@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
|
@@ -157,6 +157,41 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
157
157
|
};
|
|
158
158
|
meta: object;
|
|
159
159
|
}>;
|
|
160
|
+
duplicateAssignment: import("@trpc/server").TRPCMutationProcedure<{
|
|
161
|
+
input: {
|
|
162
|
+
[x: string]: unknown;
|
|
163
|
+
classId: string;
|
|
164
|
+
assignmentId: string;
|
|
165
|
+
title: string;
|
|
166
|
+
};
|
|
167
|
+
output: {
|
|
168
|
+
type: import(".prisma/client").$Enums.AssignmentType;
|
|
169
|
+
id: string;
|
|
170
|
+
createdAt: Date | null;
|
|
171
|
+
modifiedAt: Date | null;
|
|
172
|
+
classId: string;
|
|
173
|
+
title: string;
|
|
174
|
+
instructions: string;
|
|
175
|
+
dueDate: Date;
|
|
176
|
+
teacherId: string;
|
|
177
|
+
acceptFiles: boolean;
|
|
178
|
+
acceptExtendedResponse: boolean;
|
|
179
|
+
acceptWorksheet: boolean;
|
|
180
|
+
gradeWithAI: boolean;
|
|
181
|
+
aiPolicyLevel: number;
|
|
182
|
+
sectionId: string | null;
|
|
183
|
+
graded: boolean;
|
|
184
|
+
maxGrade: number | null;
|
|
185
|
+
weight: number;
|
|
186
|
+
inProgress: boolean;
|
|
187
|
+
template: boolean;
|
|
188
|
+
eventId: string | null;
|
|
189
|
+
markSchemeId: string | null;
|
|
190
|
+
order: number | null;
|
|
191
|
+
gradingBoundaryId: string | null;
|
|
192
|
+
};
|
|
193
|
+
meta: object;
|
|
194
|
+
}>;
|
|
160
195
|
update: import("@trpc/server").TRPCMutationProcedure<{
|
|
161
196
|
input: {
|
|
162
197
|
[x: string]: unknown;
|
|
@@ -189,12 +224,7 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
189
224
|
output: {
|
|
190
225
|
type: import(".prisma/client").$Enums.AssignmentType;
|
|
191
226
|
id: string;
|
|
192
|
-
|
|
193
|
-
student: {
|
|
194
|
-
id: string;
|
|
195
|
-
username: string;
|
|
196
|
-
};
|
|
197
|
-
}[];
|
|
227
|
+
createdAt: Date | null;
|
|
198
228
|
class: {
|
|
199
229
|
name: string;
|
|
200
230
|
id: string;
|
|
@@ -211,7 +241,12 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
211
241
|
classId: string;
|
|
212
242
|
order: number | null;
|
|
213
243
|
} | null;
|
|
214
|
-
|
|
244
|
+
submissions: {
|
|
245
|
+
student: {
|
|
246
|
+
id: string;
|
|
247
|
+
username: string;
|
|
248
|
+
};
|
|
249
|
+
}[];
|
|
215
250
|
title: string;
|
|
216
251
|
instructions: string;
|
|
217
252
|
dueDate: Date;
|
|
@@ -241,8 +276,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
241
276
|
type: string;
|
|
242
277
|
name: string;
|
|
243
278
|
id: string;
|
|
244
|
-
size: number | null;
|
|
245
279
|
userId: string | null;
|
|
280
|
+
size: number | null;
|
|
246
281
|
uploadedAt: Date | null;
|
|
247
282
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
248
283
|
uploadUrl: string | null;
|
|
@@ -289,12 +324,6 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
289
324
|
name: string;
|
|
290
325
|
id: string;
|
|
291
326
|
}[];
|
|
292
|
-
submissions: {
|
|
293
|
-
student: {
|
|
294
|
-
id: string;
|
|
295
|
-
username: string;
|
|
296
|
-
};
|
|
297
|
-
}[];
|
|
298
327
|
class: {
|
|
299
328
|
name: string;
|
|
300
329
|
id: string;
|
|
@@ -303,6 +332,12 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
303
332
|
name: string;
|
|
304
333
|
id: string;
|
|
305
334
|
} | null;
|
|
335
|
+
submissions: {
|
|
336
|
+
student: {
|
|
337
|
+
id: string;
|
|
338
|
+
username: string;
|
|
339
|
+
};
|
|
340
|
+
}[];
|
|
306
341
|
markScheme: {
|
|
307
342
|
id: string;
|
|
308
343
|
structured: string;
|
|
@@ -425,8 +460,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
425
460
|
type: string;
|
|
426
461
|
name: string;
|
|
427
462
|
id: string;
|
|
428
|
-
size: number | null;
|
|
429
463
|
userId: string | null;
|
|
464
|
+
size: number | null;
|
|
430
465
|
uploadedAt: Date | null;
|
|
431
466
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
432
467
|
uploadUrl: string | null;
|
|
@@ -453,8 +488,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
453
488
|
type: string;
|
|
454
489
|
name: string;
|
|
455
490
|
id: string;
|
|
456
|
-
size: number | null;
|
|
457
491
|
userId: string | null;
|
|
492
|
+
size: number | null;
|
|
458
493
|
uploadedAt: Date | null;
|
|
459
494
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
460
495
|
uploadUrl: string | null;
|
|
@@ -481,8 +516,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
481
516
|
username: string;
|
|
482
517
|
};
|
|
483
518
|
id: string;
|
|
484
|
-
assignmentId: string;
|
|
485
519
|
createdAt: Date;
|
|
520
|
+
assignmentId: string;
|
|
486
521
|
modifiedAt: Date;
|
|
487
522
|
studentId: string;
|
|
488
523
|
extendedResponse: string | null;
|
|
@@ -559,8 +594,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
559
594
|
type: string;
|
|
560
595
|
name: string;
|
|
561
596
|
id: string;
|
|
562
|
-
size: number | null;
|
|
563
597
|
userId: string | null;
|
|
598
|
+
size: number | null;
|
|
564
599
|
uploadedAt: Date | null;
|
|
565
600
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
566
601
|
uploadUrl: string | null;
|
|
@@ -587,8 +622,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
587
622
|
type: string;
|
|
588
623
|
name: string;
|
|
589
624
|
id: string;
|
|
590
|
-
size: number | null;
|
|
591
625
|
userId: string | null;
|
|
626
|
+
size: number | null;
|
|
592
627
|
uploadedAt: Date | null;
|
|
593
628
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
594
629
|
uploadUrl: string | null;
|
|
@@ -615,10 +650,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
615
650
|
username: string;
|
|
616
651
|
profile: {
|
|
617
652
|
id: string;
|
|
618
|
-
userId: string;
|
|
619
653
|
createdAt: Date;
|
|
620
|
-
location: string | null;
|
|
621
654
|
updatedAt: Date;
|
|
655
|
+
userId: string;
|
|
656
|
+
location: string | null;
|
|
622
657
|
displayName: string | null;
|
|
623
658
|
bio: string | null;
|
|
624
659
|
website: string | null;
|
|
@@ -627,8 +662,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
627
662
|
} | null;
|
|
628
663
|
};
|
|
629
664
|
id: string;
|
|
630
|
-
assignmentId: string;
|
|
631
665
|
createdAt: Date;
|
|
666
|
+
assignmentId: string;
|
|
632
667
|
modifiedAt: Date;
|
|
633
668
|
studentId: string;
|
|
634
669
|
extendedResponse: string | null;
|
|
@@ -710,8 +745,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
710
745
|
type: string;
|
|
711
746
|
name: string;
|
|
712
747
|
id: string;
|
|
713
|
-
size: number | null;
|
|
714
748
|
userId: string | null;
|
|
749
|
+
size: number | null;
|
|
715
750
|
uploadedAt: Date | null;
|
|
716
751
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
717
752
|
uploadUrl: string | null;
|
|
@@ -739,8 +774,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
739
774
|
};
|
|
740
775
|
} & {
|
|
741
776
|
id: string;
|
|
742
|
-
assignmentId: string;
|
|
743
777
|
createdAt: Date;
|
|
778
|
+
assignmentId: string;
|
|
744
779
|
modifiedAt: Date;
|
|
745
780
|
studentId: string;
|
|
746
781
|
extendedResponse: string | null;
|
|
@@ -814,8 +849,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
814
849
|
type: string;
|
|
815
850
|
name: string;
|
|
816
851
|
id: string;
|
|
817
|
-
size: number | null;
|
|
818
852
|
userId: string | null;
|
|
853
|
+
size: number | null;
|
|
819
854
|
uploadedAt: Date | null;
|
|
820
855
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
821
856
|
uploadUrl: string | null;
|
|
@@ -842,8 +877,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
842
877
|
type: string;
|
|
843
878
|
name: string;
|
|
844
879
|
id: string;
|
|
845
|
-
size: number | null;
|
|
846
880
|
userId: string | null;
|
|
881
|
+
size: number | null;
|
|
847
882
|
uploadedAt: Date | null;
|
|
848
883
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
849
884
|
uploadUrl: string | null;
|
|
@@ -875,8 +910,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
875
910
|
} | null;
|
|
876
911
|
};
|
|
877
912
|
id: string;
|
|
878
|
-
assignmentId: string;
|
|
879
913
|
createdAt: Date;
|
|
914
|
+
assignmentId: string;
|
|
880
915
|
modifiedAt: Date;
|
|
881
916
|
studentId: string;
|
|
882
917
|
extendedResponse: string | null;
|
|
@@ -922,10 +957,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
922
957
|
} & {
|
|
923
958
|
status: import(".prisma/client").$Enums.GenerationStatus | null;
|
|
924
959
|
id: string;
|
|
960
|
+
createdAt: Date;
|
|
925
961
|
assignmentId: string | null;
|
|
926
962
|
submissionId: string | null;
|
|
927
963
|
announcementId: string | null;
|
|
928
|
-
createdAt: Date;
|
|
929
964
|
modifiedAt: Date | null;
|
|
930
965
|
content: string;
|
|
931
966
|
authorId: string;
|
|
@@ -935,10 +970,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
935
970
|
} & {
|
|
936
971
|
status: import(".prisma/client").$Enums.GenerationStatus | null;
|
|
937
972
|
id: string;
|
|
973
|
+
createdAt: Date;
|
|
938
974
|
assignmentId: string | null;
|
|
939
975
|
submissionId: string | null;
|
|
940
976
|
announcementId: string | null;
|
|
941
|
-
createdAt: Date;
|
|
942
977
|
modifiedAt: Date | null;
|
|
943
978
|
content: string;
|
|
944
979
|
authorId: string;
|
|
@@ -980,10 +1015,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
980
1015
|
} & {
|
|
981
1016
|
status: import(".prisma/client").$Enums.GenerationStatus | null;
|
|
982
1017
|
id: string;
|
|
1018
|
+
createdAt: Date;
|
|
983
1019
|
assignmentId: string | null;
|
|
984
1020
|
submissionId: string | null;
|
|
985
1021
|
announcementId: string | null;
|
|
986
|
-
createdAt: Date;
|
|
987
1022
|
modifiedAt: Date | null;
|
|
988
1023
|
content: string;
|
|
989
1024
|
authorId: string;
|
|
@@ -993,10 +1028,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
993
1028
|
} & {
|
|
994
1029
|
status: import(".prisma/client").$Enums.GenerationStatus | null;
|
|
995
1030
|
id: string;
|
|
1031
|
+
createdAt: Date;
|
|
996
1032
|
assignmentId: string | null;
|
|
997
1033
|
submissionId: string | null;
|
|
998
1034
|
announcementId: string | null;
|
|
999
|
-
createdAt: Date;
|
|
1000
1035
|
modifiedAt: Date | null;
|
|
1001
1036
|
content: string;
|
|
1002
1037
|
authorId: string;
|
|
@@ -1037,10 +1072,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1037
1072
|
} & {
|
|
1038
1073
|
status: import(".prisma/client").$Enums.GenerationStatus | null;
|
|
1039
1074
|
id: string;
|
|
1075
|
+
createdAt: Date;
|
|
1040
1076
|
assignmentId: string | null;
|
|
1041
1077
|
submissionId: string | null;
|
|
1042
1078
|
announcementId: string | null;
|
|
1043
|
-
createdAt: Date;
|
|
1044
1079
|
modifiedAt: Date | null;
|
|
1045
1080
|
content: string;
|
|
1046
1081
|
authorId: string;
|
|
@@ -1050,10 +1085,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1050
1085
|
} & {
|
|
1051
1086
|
status: import(".prisma/client").$Enums.GenerationStatus | null;
|
|
1052
1087
|
id: string;
|
|
1088
|
+
createdAt: Date;
|
|
1053
1089
|
assignmentId: string | null;
|
|
1054
1090
|
submissionId: string | null;
|
|
1055
1091
|
announcementId: string | null;
|
|
1056
|
-
createdAt: Date;
|
|
1057
1092
|
modifiedAt: Date | null;
|
|
1058
1093
|
content: string;
|
|
1059
1094
|
authorId: string;
|
|
@@ -1096,10 +1131,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1096
1131
|
} & {
|
|
1097
1132
|
status: import(".prisma/client").$Enums.GenerationStatus | null;
|
|
1098
1133
|
id: string;
|
|
1134
|
+
createdAt: Date;
|
|
1099
1135
|
assignmentId: string | null;
|
|
1100
1136
|
submissionId: string | null;
|
|
1101
1137
|
announcementId: string | null;
|
|
1102
|
-
createdAt: Date;
|
|
1103
1138
|
modifiedAt: Date | null;
|
|
1104
1139
|
content: string;
|
|
1105
1140
|
authorId: string;
|
|
@@ -1109,10 +1144,10 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1109
1144
|
} & {
|
|
1110
1145
|
status: import(".prisma/client").$Enums.GenerationStatus | null;
|
|
1111
1146
|
id: string;
|
|
1147
|
+
createdAt: Date;
|
|
1112
1148
|
assignmentId: string | null;
|
|
1113
1149
|
submissionId: string | null;
|
|
1114
1150
|
announcementId: string | null;
|
|
1115
|
-
createdAt: Date;
|
|
1116
1151
|
modifiedAt: Date | null;
|
|
1117
1152
|
content: string;
|
|
1118
1153
|
authorId: string;
|
|
@@ -1196,8 +1231,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1196
1231
|
type: string;
|
|
1197
1232
|
name: string;
|
|
1198
1233
|
id: string;
|
|
1199
|
-
size: number | null;
|
|
1200
1234
|
userId: string | null;
|
|
1235
|
+
size: number | null;
|
|
1201
1236
|
uploadedAt: Date | null;
|
|
1202
1237
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1203
1238
|
uploadUrl: string | null;
|
|
@@ -1224,8 +1259,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1224
1259
|
type: string;
|
|
1225
1260
|
name: string;
|
|
1226
1261
|
id: string;
|
|
1227
|
-
size: number | null;
|
|
1228
1262
|
userId: string | null;
|
|
1263
|
+
size: number | null;
|
|
1229
1264
|
uploadedAt: Date | null;
|
|
1230
1265
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1231
1266
|
uploadUrl: string | null;
|
|
@@ -1253,8 +1288,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1253
1288
|
type: string;
|
|
1254
1289
|
name: string;
|
|
1255
1290
|
id: string;
|
|
1256
|
-
size: number | null;
|
|
1257
1291
|
userId: string | null;
|
|
1292
|
+
size: number | null;
|
|
1258
1293
|
uploadedAt: Date | null;
|
|
1259
1294
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1260
1295
|
uploadUrl: string | null;
|
|
@@ -1281,8 +1316,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1281
1316
|
type: string;
|
|
1282
1317
|
name: string;
|
|
1283
1318
|
id: string;
|
|
1284
|
-
size: number | null;
|
|
1285
1319
|
userId: string | null;
|
|
1320
|
+
size: number | null;
|
|
1286
1321
|
uploadedAt: Date | null;
|
|
1287
1322
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1288
1323
|
uploadUrl: string | null;
|
|
@@ -1315,8 +1350,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1315
1350
|
};
|
|
1316
1351
|
} & {
|
|
1317
1352
|
id: string;
|
|
1318
|
-
assignmentId: string;
|
|
1319
1353
|
createdAt: Date;
|
|
1354
|
+
assignmentId: string;
|
|
1320
1355
|
modifiedAt: Date;
|
|
1321
1356
|
studentId: string;
|
|
1322
1357
|
extendedResponse: string | null;
|
|
@@ -1516,8 +1551,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1516
1551
|
type: string;
|
|
1517
1552
|
name: string;
|
|
1518
1553
|
id: string;
|
|
1519
|
-
size: number | null;
|
|
1520
1554
|
userId: string | null;
|
|
1555
|
+
size: number | null;
|
|
1521
1556
|
uploadedAt: Date | null;
|
|
1522
1557
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1523
1558
|
uploadUrl: string | null;
|
|
@@ -1611,8 +1646,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1611
1646
|
type: string;
|
|
1612
1647
|
name: string;
|
|
1613
1648
|
id: string;
|
|
1614
|
-
size: number | null;
|
|
1615
1649
|
userId: string | null;
|
|
1650
|
+
size: number | null;
|
|
1616
1651
|
uploadedAt: Date | null;
|
|
1617
1652
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1618
1653
|
uploadUrl: string | null;
|
|
@@ -1707,8 +1742,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1707
1742
|
type: string;
|
|
1708
1743
|
name: string;
|
|
1709
1744
|
id: string;
|
|
1710
|
-
size: number | null;
|
|
1711
1745
|
userId: string | null;
|
|
1746
|
+
size: number | null;
|
|
1712
1747
|
uploadedAt: Date | null;
|
|
1713
1748
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1714
1749
|
uploadUrl: string | null;
|
|
@@ -1802,8 +1837,8 @@ export declare const assignmentRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
1802
1837
|
type: string;
|
|
1803
1838
|
name: string;
|
|
1804
1839
|
id: string;
|
|
1805
|
-
size: number | null;
|
|
1806
1840
|
userId: string | null;
|
|
1841
|
+
size: number | null;
|
|
1807
1842
|
uploadedAt: Date | null;
|
|
1808
1843
|
uploadStatus: import(".prisma/client").$Enums.UploadStatus;
|
|
1809
1844
|
uploadUrl: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assignment.d.ts","sourceRoot":"/","sources":["routers/assignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAA2B,KAAK,gBAAgB,EAAgE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"assignment.d.ts","sourceRoot":"/","sources":["routers/assignment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAA2B,KAAK,gBAAgB,EAAgE,MAAM,sBAAsB,CAAC;AA2OpJ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2qB3B,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
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]="88c9a5e9-f0c5-5e0e-bf58-8765cdd9a0a9")}catch(e){}}();
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { createTRPCRouter, protectedProcedure, protectedClassMemberProcedure, protectedTeacherProcedure } from "../trpc.js";
|
|
5
5
|
import { TRPCError } from "@trpc/server";
|
|
6
6
|
import { prisma } from "../lib/prisma.js";
|
|
7
7
|
import { createDirectUploadFiles, confirmDirectUpload, updateUploadProgress } from "../lib/fileUpload.js";
|
|
8
|
-
import {
|
|
8
|
+
import { classMemberOrSchoolAdminWhere, classTeacherOrSchoolAdminWhere, } from "../models/access.js";
|
|
9
|
+
import { assignmentExists, getDueToday, getAssignment, getSubmission, getSubmissionById, getSubmissions, createAssignmentRecord, duplicateAssignmentRecord, updateAssignmentRecord, deleteAssignmentRecord, updateSubmissionRecord, updateSubmissionAsTeacherRecord, attachAssignmentToEventRecord, detachAssignmentFromEventRecord, getAvailableEventsForAssignment, attachMarkSchemeRecord, detachMarkSchemeRecord, attachGradingBoundaryRecord, detachGradingBoundaryRecord, reorderAssignmentRecord, moveAssignmentRecord, } from "../services/assignment.js";
|
|
9
10
|
// DEPRECATED: This schema is no longer used - files are uploaded directly to GCS
|
|
10
11
|
// Use directFileSchema instead
|
|
11
12
|
// New schema for direct file uploads (no base64 data)
|
|
@@ -219,6 +220,13 @@ export const assignmentRouter = createTRPCRouter({
|
|
|
219
220
|
create: protectedTeacherProcedure
|
|
220
221
|
.input(createAssignmentSchema)
|
|
221
222
|
.mutation(({ ctx, input }) => createAssignmentRecord(ctx.user.id, input)),
|
|
223
|
+
duplicateAssignment: protectedTeacherProcedure
|
|
224
|
+
.input(z.object({
|
|
225
|
+
classId: z.string(),
|
|
226
|
+
title: z.string(),
|
|
227
|
+
assignmentId: z.string(),
|
|
228
|
+
}))
|
|
229
|
+
.mutation(({ ctx, input }) => duplicateAssignmentRecord(input.assignmentId, input.classId, input.title, ctx.user.id)),
|
|
222
230
|
update: protectedTeacherProcedure
|
|
223
231
|
.input(updateAssignmentSchema)
|
|
224
232
|
.mutation(({ ctx, input }) => updateAssignmentRecord(ctx.user.id, input)),
|
|
@@ -322,16 +330,11 @@ export const assignmentRouter = createTRPCRouter({
|
|
|
322
330
|
assignmentId: input.assignmentId,
|
|
323
331
|
assignment: {
|
|
324
332
|
classId: input.classId,
|
|
325
|
-
class:
|
|
326
|
-
OR: [
|
|
327
|
-
{ teachers: { some: { id: ctx.user.id } } },
|
|
328
|
-
{ students: { some: { id: ctx.user.id } } },
|
|
329
|
-
],
|
|
330
|
-
},
|
|
333
|
+
class: classMemberOrSchoolAdminWhere(ctx.user.id),
|
|
331
334
|
},
|
|
332
335
|
OR: [
|
|
333
336
|
{ studentId: ctx.user.id },
|
|
334
|
-
{ assignment: { class:
|
|
337
|
+
{ assignment: { class: classTeacherOrSchoolAdminWhere(ctx.user.id) } },
|
|
335
338
|
],
|
|
336
339
|
},
|
|
337
340
|
select: { id: true },
|
|
@@ -362,7 +365,7 @@ export const assignmentRouter = createTRPCRouter({
|
|
|
362
365
|
assignment: { classId: input.classId },
|
|
363
366
|
OR: [
|
|
364
367
|
{ studentId: ctx.user.id },
|
|
365
|
-
{ assignment: { class:
|
|
368
|
+
{ assignment: { class: classTeacherOrSchoolAdminWhere(ctx.user.id) } },
|
|
366
369
|
],
|
|
367
370
|
},
|
|
368
371
|
select: { id: true },
|
|
@@ -516,6 +519,21 @@ export const assignmentRouter = createTRPCRouter({
|
|
|
516
519
|
include: {
|
|
517
520
|
students: true,
|
|
518
521
|
teachers: true,
|
|
522
|
+
school: {
|
|
523
|
+
include: {
|
|
524
|
+
users: {
|
|
525
|
+
where: { role: "ADMIN" },
|
|
526
|
+
select: { id: true },
|
|
527
|
+
},
|
|
528
|
+
memberships: {
|
|
529
|
+
where: {
|
|
530
|
+
role: "ADMIN",
|
|
531
|
+
status: "ACTIVE",
|
|
532
|
+
},
|
|
533
|
+
select: { userId: true },
|
|
534
|
+
},
|
|
535
|
+
},
|
|
536
|
+
},
|
|
519
537
|
},
|
|
520
538
|
},
|
|
521
539
|
},
|
|
@@ -531,7 +549,9 @@ export const assignmentRouter = createTRPCRouter({
|
|
|
531
549
|
// Check if user is the student who owns the submission or a teacher of the class
|
|
532
550
|
const isStudent = submission.studentId === ctx.user.id;
|
|
533
551
|
const isTeacher = submission.assignment.class.teachers.some(teacher => teacher.id === ctx.user?.id);
|
|
534
|
-
|
|
552
|
+
const isSchoolAdmin = Boolean(submission.assignment.class.school?.memberships.some(admin => admin.userId === ctx.user?.id) ||
|
|
553
|
+
submission.assignment.class.school?.users.some(admin => admin.id === ctx.user?.id));
|
|
554
|
+
if (!isStudent && !isTeacher && !isSchoolAdmin) {
|
|
535
555
|
throw new TRPCError({
|
|
536
556
|
code: "FORBIDDEN",
|
|
537
557
|
message: "You don't have permission to upload files to this submission",
|
|
@@ -724,4 +744,4 @@ export const assignmentRouter = createTRPCRouter({
|
|
|
724
744
|
}),
|
|
725
745
|
});
|
|
726
746
|
//# sourceMappingURL=assignment.js.map
|
|
727
|
-
//# debugId=
|
|
747
|
+
//# debugId=88c9a5e9-f0c5-5e0e-bf58-8765cdd9a0a9
|