@studious-lms/server 1.0.4 → 1.0.7
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/API_SPECIFICATION.md +1117 -0
- package/dist/exportType.js +1 -2
- package/dist/index.js +25 -30
- package/dist/lib/fileUpload.d.ts.map +1 -1
- package/dist/lib/fileUpload.js +31 -29
- package/dist/lib/googleCloudStorage.js +9 -14
- package/dist/lib/prisma.js +4 -7
- package/dist/lib/thumbnailGenerator.js +12 -20
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +17 -22
- package/dist/middleware/logging.js +5 -9
- package/dist/routers/_app.d.ts +3483 -1801
- package/dist/routers/_app.d.ts.map +1 -1
- package/dist/routers/_app.js +28 -27
- package/dist/routers/agenda.d.ts +13 -8
- package/dist/routers/agenda.d.ts.map +1 -1
- package/dist/routers/agenda.js +14 -17
- package/dist/routers/announcement.d.ts +4 -3
- package/dist/routers/announcement.d.ts.map +1 -1
- package/dist/routers/announcement.js +28 -31
- package/dist/routers/assignment.d.ts +282 -196
- package/dist/routers/assignment.d.ts.map +1 -1
- package/dist/routers/assignment.js +256 -202
- package/dist/routers/attendance.d.ts +5 -4
- package/dist/routers/attendance.d.ts.map +1 -1
- package/dist/routers/attendance.js +31 -34
- package/dist/routers/auth.d.ts +1 -0
- package/dist/routers/auth.d.ts.map +1 -1
- package/dist/routers/auth.js +80 -75
- package/dist/routers/class.d.ts +284 -14
- package/dist/routers/class.d.ts.map +1 -1
- package/dist/routers/class.js +435 -164
- package/dist/routers/event.d.ts +47 -38
- package/dist/routers/event.d.ts.map +1 -1
- package/dist/routers/event.js +76 -79
- package/dist/routers/file.d.ts +71 -1
- package/dist/routers/file.d.ts.map +1 -1
- package/dist/routers/file.js +267 -32
- package/dist/routers/folder.d.ts +296 -0
- package/dist/routers/folder.d.ts.map +1 -0
- package/dist/routers/folder.js +693 -0
- package/dist/routers/notifications.d.ts +103 -0
- package/dist/routers/notifications.d.ts.map +1 -0
- package/dist/routers/notifications.js +91 -0
- package/dist/routers/school.d.ts +208 -0
- package/dist/routers/school.d.ts.map +1 -0
- package/dist/routers/school.js +481 -0
- package/dist/routers/section.d.ts +1 -0
- package/dist/routers/section.d.ts.map +1 -1
- package/dist/routers/section.js +30 -33
- package/dist/routers/user.d.ts +2 -1
- package/dist/routers/user.d.ts.map +1 -1
- package/dist/routers/user.js +21 -24
- package/dist/seedDatabase.d.ts +22 -0
- package/dist/seedDatabase.d.ts.map +1 -0
- package/dist/seedDatabase.js +57 -0
- package/dist/socket/handlers.js +26 -30
- package/dist/trpc.d.ts +5 -0
- package/dist/trpc.d.ts.map +1 -1
- package/dist/trpc.js +35 -26
- package/dist/types/trpc.js +1 -2
- package/dist/utils/email.js +2 -8
- package/dist/utils/generateInviteCode.js +1 -5
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +13 -9
- package/dist/utils/prismaErrorHandler.d.ts +9 -0
- package/dist/utils/prismaErrorHandler.d.ts.map +1 -0
- package/dist/utils/prismaErrorHandler.js +234 -0
- package/dist/utils/prismaWrapper.d.ts +14 -0
- package/dist/utils/prismaWrapper.d.ts.map +1 -0
- package/dist/utils/prismaWrapper.js +64 -0
- package/package.json +17 -4
- package/prisma/migrations/20250807062924_init/migration.sql +436 -0
- package/prisma/migrations/migration_lock.toml +3 -0
- package/prisma/schema.prisma +67 -0
- package/src/index.ts +2 -2
- package/src/lib/fileUpload.ts +16 -7
- package/src/middleware/auth.ts +0 -2
- package/src/routers/_app.ts +5 -1
- package/src/routers/assignment.ts +82 -22
- package/src/routers/auth.ts +80 -54
- package/src/routers/class.ts +330 -36
- package/src/routers/file.ts +283 -20
- package/src/routers/folder.ts +755 -0
- package/src/routers/notifications.ts +93 -0
- package/src/seedDatabase.ts +66 -0
- package/src/socket/handlers.ts +4 -4
- package/src/trpc.ts +13 -0
- package/src/utils/logger.ts +14 -4
- package/src/utils/prismaErrorHandler.ts +275 -0
- package/src/utils/prismaWrapper.ts +91 -0
- package/tests/auth.test.ts +25 -0
- package/tests/class.test.ts +281 -0
- package/tests/setup.ts +98 -0
- package/tests/startup.test.ts +5 -0
- package/tsconfig.json +2 -1
- package/vitest.config.ts +11 -0
- package/dist/logger.d.ts +0 -26
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -135
- package/src/logger.ts +0 -163
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../src/routers/_app.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../src/routers/_app.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAU1E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAapB,CAAC;AAGH,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AACzC,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACxD,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAG1D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiC,CAAC"}
|
package/dist/routers/_app.js
CHANGED
|
@@ -1,29 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
import { createTRPCRouter } from "../trpc";
|
|
2
|
+
import { classRouter } from "./class";
|
|
3
|
+
import { announcementRouter } from "./announcement";
|
|
4
|
+
import { assignmentRouter } from "./assignment";
|
|
5
|
+
import { userRouter } from "./user";
|
|
6
|
+
import { createCallerFactory } from "../trpc";
|
|
7
|
+
import { sectionRouter } from "./section";
|
|
8
|
+
import { attendanceRouter } from "./attendance";
|
|
9
|
+
import { eventRouter } from "./event";
|
|
10
|
+
import { authRouter } from "./auth";
|
|
11
|
+
import { agendaRouter } from "./agenda";
|
|
12
|
+
import { fileRouter } from "./file";
|
|
13
|
+
import { folderRouter } from "./folder";
|
|
14
|
+
import { notificationRouter } from "./notifications";
|
|
15
|
+
export const appRouter = createTRPCRouter({
|
|
16
|
+
class: classRouter,
|
|
17
|
+
announcement: announcementRouter,
|
|
18
|
+
assignment: assignmentRouter,
|
|
19
|
+
user: userRouter,
|
|
20
|
+
section: sectionRouter,
|
|
21
|
+
attendance: attendanceRouter,
|
|
22
|
+
event: eventRouter,
|
|
23
|
+
auth: authRouter,
|
|
24
|
+
agenda: agendaRouter,
|
|
25
|
+
file: fileRouter,
|
|
26
|
+
folder: folderRouter,
|
|
27
|
+
notification: notificationRouter,
|
|
27
28
|
});
|
|
28
29
|
// Export caller
|
|
29
|
-
|
|
30
|
+
export const createCaller = createCallerFactory(appRouter);
|
package/dist/routers/agenda.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare const agendaRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
5
5
|
errorShape: {
|
|
6
6
|
data: {
|
|
7
7
|
zodError: z.typeToFlattenedError<any, string> | null;
|
|
8
|
+
prismaError: import("../utils/prismaErrorHandler").PrismaErrorInfo | null;
|
|
8
9
|
code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
|
|
9
10
|
httpStatus: number;
|
|
10
11
|
path?: string;
|
|
@@ -24,40 +25,44 @@ export declare const agendaRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
24
25
|
personal: ({
|
|
25
26
|
class: {
|
|
26
27
|
id: string;
|
|
28
|
+
schoolId: string | null;
|
|
27
29
|
name: string;
|
|
28
30
|
subject: string;
|
|
29
31
|
color: string | null;
|
|
30
32
|
section: string;
|
|
33
|
+
syllabus: string | null;
|
|
31
34
|
} | null;
|
|
32
35
|
} & {
|
|
33
36
|
id: string;
|
|
34
37
|
name: string | null;
|
|
35
38
|
color: string | null;
|
|
36
|
-
|
|
37
|
-
userId: string | null;
|
|
38
|
-
remarks: string | null;
|
|
39
|
+
location: string | null;
|
|
39
40
|
startTime: Date;
|
|
40
41
|
endTime: Date;
|
|
41
|
-
|
|
42
|
+
remarks: string | null;
|
|
43
|
+
classId: string | null;
|
|
44
|
+
userId: string | null;
|
|
42
45
|
})[];
|
|
43
46
|
class: ({
|
|
44
47
|
class: {
|
|
45
48
|
id: string;
|
|
49
|
+
schoolId: string | null;
|
|
46
50
|
name: string;
|
|
47
51
|
subject: string;
|
|
48
52
|
color: string | null;
|
|
49
53
|
section: string;
|
|
54
|
+
syllabus: string | null;
|
|
50
55
|
} | null;
|
|
51
56
|
} & {
|
|
52
57
|
id: string;
|
|
53
58
|
name: string | null;
|
|
54
59
|
color: string | null;
|
|
55
|
-
|
|
56
|
-
userId: string | null;
|
|
57
|
-
remarks: string | null;
|
|
60
|
+
location: string | null;
|
|
58
61
|
startTime: Date;
|
|
59
62
|
endTime: Date;
|
|
60
|
-
|
|
63
|
+
remarks: string | null;
|
|
64
|
+
classId: string | null;
|
|
65
|
+
userId: string | null;
|
|
61
66
|
})[];
|
|
62
67
|
};
|
|
63
68
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agenda.d.ts","sourceRoot":"","sources":["../../src/routers/agenda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"agenda.d.ts","sourceRoot":"","sources":["../../src/routers/agenda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEvB,CAAC"}
|
package/dist/routers/agenda.js
CHANGED
|
@@ -1,28 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
get: trpc_1.protectedProcedure
|
|
11
|
-
.input(zod_1.z.object({
|
|
12
|
-
weekStart: zod_1.z.string(),
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { createTRPCRouter, protectedProcedure } from "../trpc";
|
|
3
|
+
import { prisma } from "../lib/prisma";
|
|
4
|
+
import { TRPCError } from "@trpc/server";
|
|
5
|
+
import { addDays, startOfDay, endOfDay } from "date-fns";
|
|
6
|
+
export const agendaRouter = createTRPCRouter({
|
|
7
|
+
get: protectedProcedure
|
|
8
|
+
.input(z.object({
|
|
9
|
+
weekStart: z.string(),
|
|
13
10
|
}))
|
|
14
11
|
.query(async ({ ctx, input }) => {
|
|
15
12
|
if (!ctx.user) {
|
|
16
|
-
throw new
|
|
13
|
+
throw new TRPCError({
|
|
17
14
|
code: "UNAUTHORIZED",
|
|
18
15
|
message: "You must be logged in to get your agenda",
|
|
19
16
|
});
|
|
20
17
|
}
|
|
21
|
-
const weekStart =
|
|
22
|
-
const weekEnd =
|
|
18
|
+
const weekStart = startOfDay(new Date(input.weekStart));
|
|
19
|
+
const weekEnd = endOfDay(addDays(weekStart, 6));
|
|
23
20
|
const [personalEvents, classEvents] = await Promise.all([
|
|
24
21
|
// Get personal events
|
|
25
|
-
|
|
22
|
+
prisma.event.findMany({
|
|
26
23
|
where: {
|
|
27
24
|
userId: ctx.user.id,
|
|
28
25
|
startTime: {
|
|
@@ -38,7 +35,7 @@ exports.agendaRouter = (0, trpc_1.createTRPCRouter)({
|
|
|
38
35
|
},
|
|
39
36
|
}),
|
|
40
37
|
// Get class events
|
|
41
|
-
|
|
38
|
+
prisma.event.findMany({
|
|
42
39
|
where: {
|
|
43
40
|
class: {
|
|
44
41
|
OR: [
|
|
@@ -5,6 +5,7 @@ export declare const announcementRouter: import("@trpc/server").TRPCBuiltRouter<
|
|
|
5
5
|
errorShape: {
|
|
6
6
|
data: {
|
|
7
7
|
zodError: z.typeToFlattenedError<any, string> | null;
|
|
8
|
+
prismaError: import("../utils/prismaErrorHandler").PrismaErrorInfo | null;
|
|
8
9
|
code: import("@trpc/server").TRPC_ERROR_CODE_KEY;
|
|
9
10
|
httpStatus: number;
|
|
10
11
|
path?: string;
|
|
@@ -23,12 +24,12 @@ export declare const announcementRouter: import("@trpc/server").TRPCBuiltRouter<
|
|
|
23
24
|
output: {
|
|
24
25
|
announcements: {
|
|
25
26
|
id: string;
|
|
27
|
+
remarks: string;
|
|
26
28
|
teacher: {
|
|
27
29
|
id: string;
|
|
28
30
|
username: string;
|
|
29
31
|
};
|
|
30
32
|
createdAt: Date;
|
|
31
|
-
remarks: string;
|
|
32
33
|
}[];
|
|
33
34
|
};
|
|
34
35
|
meta: object;
|
|
@@ -42,12 +43,12 @@ export declare const announcementRouter: import("@trpc/server").TRPCBuiltRouter<
|
|
|
42
43
|
output: {
|
|
43
44
|
announcement: {
|
|
44
45
|
id: string;
|
|
46
|
+
remarks: string;
|
|
45
47
|
teacher: {
|
|
46
48
|
id: string;
|
|
47
49
|
username: string;
|
|
48
50
|
};
|
|
49
51
|
createdAt: Date;
|
|
50
|
-
remarks: string;
|
|
51
52
|
};
|
|
52
53
|
};
|
|
53
54
|
meta: object;
|
|
@@ -62,10 +63,10 @@ export declare const announcementRouter: import("@trpc/server").TRPCBuiltRouter<
|
|
|
62
63
|
output: {
|
|
63
64
|
announcement: {
|
|
64
65
|
id: string;
|
|
66
|
+
remarks: string;
|
|
65
67
|
classId: string;
|
|
66
68
|
createdAt: Date;
|
|
67
69
|
teacherId: string;
|
|
68
|
-
remarks: string;
|
|
69
70
|
};
|
|
70
71
|
};
|
|
71
72
|
meta: object;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcement.d.ts","sourceRoot":"","sources":["../../src/routers/announcement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"announcement.d.ts","sourceRoot":"","sources":["../../src/routers/announcement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiBxB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoH7B,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const trpc_1 = require("../trpc");
|
|
6
|
-
const prisma_1 = require("../lib/prisma");
|
|
7
|
-
const server_1 = require("@trpc/server");
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { createTRPCRouter, protectedClassMemberProcedure, protectedTeacherProcedure, protectedProcedure } from "../trpc";
|
|
3
|
+
import { prisma } from "../lib/prisma";
|
|
4
|
+
import { TRPCError } from "@trpc/server";
|
|
8
5
|
const AnnouncementSelect = {
|
|
9
6
|
id: true,
|
|
10
7
|
teacher: {
|
|
@@ -16,13 +13,13 @@ const AnnouncementSelect = {
|
|
|
16
13
|
remarks: true,
|
|
17
14
|
createdAt: true,
|
|
18
15
|
};
|
|
19
|
-
|
|
20
|
-
getAll:
|
|
21
|
-
.input(
|
|
22
|
-
classId:
|
|
16
|
+
export const announcementRouter = createTRPCRouter({
|
|
17
|
+
getAll: protectedClassMemberProcedure
|
|
18
|
+
.input(z.object({
|
|
19
|
+
classId: z.string(),
|
|
23
20
|
}))
|
|
24
21
|
.query(async ({ ctx, input }) => {
|
|
25
|
-
const announcements = await
|
|
22
|
+
const announcements = await prisma.announcement.findMany({
|
|
26
23
|
where: {
|
|
27
24
|
classId: input.classId,
|
|
28
25
|
},
|
|
@@ -35,13 +32,13 @@ exports.announcementRouter = (0, trpc_1.createTRPCRouter)({
|
|
|
35
32
|
announcements,
|
|
36
33
|
};
|
|
37
34
|
}),
|
|
38
|
-
create:
|
|
39
|
-
.input(
|
|
40
|
-
classId:
|
|
41
|
-
remarks:
|
|
35
|
+
create: protectedTeacherProcedure
|
|
36
|
+
.input(z.object({
|
|
37
|
+
classId: z.string(),
|
|
38
|
+
remarks: z.string(),
|
|
42
39
|
}))
|
|
43
40
|
.mutation(async ({ ctx, input }) => {
|
|
44
|
-
const announcement = await
|
|
41
|
+
const announcement = await prisma.announcement.create({
|
|
45
42
|
data: {
|
|
46
43
|
remarks: input.remarks,
|
|
47
44
|
teacher: {
|
|
@@ -61,15 +58,15 @@ exports.announcementRouter = (0, trpc_1.createTRPCRouter)({
|
|
|
61
58
|
announcement,
|
|
62
59
|
};
|
|
63
60
|
}),
|
|
64
|
-
update:
|
|
65
|
-
.input(
|
|
66
|
-
id:
|
|
67
|
-
data:
|
|
68
|
-
content:
|
|
61
|
+
update: protectedProcedure
|
|
62
|
+
.input(z.object({
|
|
63
|
+
id: z.string(),
|
|
64
|
+
data: z.object({
|
|
65
|
+
content: z.string(),
|
|
69
66
|
}),
|
|
70
67
|
}))
|
|
71
68
|
.mutation(async ({ ctx, input }) => {
|
|
72
|
-
const announcement = await
|
|
69
|
+
const announcement = await prisma.announcement.findUnique({
|
|
73
70
|
where: { id: input.id },
|
|
74
71
|
include: {
|
|
75
72
|
class: {
|
|
@@ -80,12 +77,12 @@ exports.announcementRouter = (0, trpc_1.createTRPCRouter)({
|
|
|
80
77
|
},
|
|
81
78
|
});
|
|
82
79
|
if (!announcement) {
|
|
83
|
-
throw new
|
|
80
|
+
throw new TRPCError({
|
|
84
81
|
code: "NOT_FOUND",
|
|
85
82
|
message: "Announcement not found",
|
|
86
83
|
});
|
|
87
84
|
}
|
|
88
|
-
const updatedAnnouncement = await
|
|
85
|
+
const updatedAnnouncement = await prisma.announcement.update({
|
|
89
86
|
where: { id: input.id },
|
|
90
87
|
data: {
|
|
91
88
|
remarks: input.data.content,
|
|
@@ -93,12 +90,12 @@ exports.announcementRouter = (0, trpc_1.createTRPCRouter)({
|
|
|
93
90
|
});
|
|
94
91
|
return { announcement: updatedAnnouncement };
|
|
95
92
|
}),
|
|
96
|
-
delete:
|
|
97
|
-
.input(
|
|
98
|
-
id:
|
|
93
|
+
delete: protectedProcedure
|
|
94
|
+
.input(z.object({
|
|
95
|
+
id: z.string(),
|
|
99
96
|
}))
|
|
100
97
|
.mutation(async ({ ctx, input }) => {
|
|
101
|
-
const announcement = await
|
|
98
|
+
const announcement = await prisma.announcement.findUnique({
|
|
102
99
|
where: { id: input.id },
|
|
103
100
|
include: {
|
|
104
101
|
class: {
|
|
@@ -109,12 +106,12 @@ exports.announcementRouter = (0, trpc_1.createTRPCRouter)({
|
|
|
109
106
|
},
|
|
110
107
|
});
|
|
111
108
|
if (!announcement) {
|
|
112
|
-
throw new
|
|
109
|
+
throw new TRPCError({
|
|
113
110
|
code: "NOT_FOUND",
|
|
114
111
|
message: "Announcement not found",
|
|
115
112
|
});
|
|
116
113
|
}
|
|
117
|
-
await
|
|
114
|
+
await prisma.announcement.delete({
|
|
118
115
|
where: { id: input.id },
|
|
119
116
|
});
|
|
120
117
|
return { success: true };
|