Skip to content

Commit bced3c0

Browse files
authored
♻️ Refactor: Strongly-type error constants (#421)
* ♻️ Refactor: strongly-type AuthErrors * ♻️ Refactor: strongly-type DbErrors * ♻️ Refactor: strongly-type EventErrors * ♻️ Refactor: strongly-type Gcal and GenericErrors * ♻️ Refactor: strongly-type Gcal and SyncErrors * ♻️ Refactor: strongly-type Gcal and SocketErrors * ♻️ Refactor: strongly-type UserErrors * 🐛 Fix: gcal.service import * 🧹 Chore: add @ts-expect-error to express.server middleware
1 parent 58b4d11 commit bced3c0

39 files changed

+327
-270
lines changed

packages/backend/src/auth/controllers/auth.controller.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { ObjectId } from "mongodb";
22
import { WithId } from "mongodb";
33
import { gCalendar } from "@core/types/gcal";
44
import { Schema_User } from "@core/types/user.types";
5-
import { SyncError } from "@backend/common/constants/error.constants";
5+
import { SyncError } from "@backend/common/errors/sync/sync.errors";
66
import mongoService from "@backend/common/services/mongo.service";
77
import syncService from "@backend/sync/services/sync.service";
88
import userService from "@backend/user/services/user.service";

packages/backend/src/auth/controllers/auth.controller.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,9 @@ import compassAuthService from "@backend/auth/services/compass.auth.service";
1818
import GoogleAuthService, {
1919
getGAuthClientForUser,
2020
} from "@backend/auth/services/google.auth.service";
21-
import {
22-
GcalError,
23-
SyncError,
24-
} from "@backend/common/constants/error.constants";
2521
import { error } from "@backend/common/errors/handlers/error.handler";
22+
import { GcalError } from "@backend/common/errors/integration/gcal/gcal.errors";
23+
import { SyncError } from "@backend/common/errors/sync/sync.errors";
2624
import { isInvalidGoogleToken } from "@backend/common/services/gcal/gcal.utils";
2725
import {
2826
ReqBody,

packages/backend/src/auth/middleware/auth.middleware.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
import { NextFunction, Request, Response } from "express";
22
import { Status } from "@core/errors/status.codes";
33
import { ENV, IS_DEV } from "@backend/common/constants/env.constants";
4-
import {
5-
AuthError,
6-
GcalError,
7-
} from "@backend/common/constants/error.constants";
4+
import { AuthError } from "@backend/common/errors/auth/auth.errors";
85
import { error } from "@backend/common/errors/handlers/error.handler";
6+
import { GcalError } from "@backend/common/errors/integration/gcal/gcal.errors";
97
import { SReqBody } from "@backend/common/types/express.types";
108
import { hasGoogleHeaders } from "@backend/sync/util/sync.util";
119

packages/backend/src/auth/services/auth.utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Credentials } from "google-auth-library";
22
import GoogleAuthService from "@backend/auth/services/google.auth.service";
3-
import { AuthError } from "@backend/common/constants/error.constants";
3+
import { AuthError } from "@backend/common/errors/auth/auth.errors";
44
import { error } from "@backend/common/errors/handlers/error.handler";
55

66
export const initGoogleClient = async (

packages/backend/src/auth/services/compass.auth.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Session from "supertokens-node/recipe/session";
2-
import { SyncError } from "@backend/common/constants/error.constants";
32
import { error } from "@backend/common/errors/handlers/error.handler";
3+
import { SyncError } from "@backend/common/errors/sync/sync.errors";
44
import { getSync } from "@backend/sync/util/sync.queries";
55
import { canDoIncrementalSync } from "@backend/sync/util/sync.util";
66
import { findCompassUserBy } from "@backend/user/queries/user.queries";

packages/backend/src/auth/services/google.auth.service.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@ import { UserInfo_Google } from "@core/types/auth.types";
88
import { gCalendar } from "@core/types/gcal";
99
import { Schema_User } from "@core/types/user.types";
1010
import { ENV } from "@backend/common/constants/env.constants";
11-
import {
12-
AuthError,
13-
UserError,
14-
} from "@backend/common/constants/error.constants";
11+
import { AuthError } from "@backend/common/errors/auth/auth.errors";
1512
import { error } from "@backend/common/errors/handlers/error.handler";
13+
import { UserError } from "@backend/common/errors/user/user.errors";
1614
import { findCompassUserBy } from "@backend/user/queries/user.queries";
1715
import compassAuthService from "./compass.auth.service";
1816

packages/backend/src/calendar/controllers/calendar.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { SessionRequest } from "supertokens-node/framework/express";
22
import { Schema_CalendarList } from "@core/types/calendar.types";
33
import { getGcalClient } from "@backend/auth/services/google.auth.service";
44
import calendarService from "@backend/calendar/services/calendar.service";
5-
import { AuthError } from "@backend/common/constants/error.constants";
5+
import { AuthError } from "@backend/common/errors/auth/auth.errors";
66
import { error } from "@backend/common/errors/handlers/error.handler";
77
import gcalService from "@backend/common/services/gcal/gcal.service";
88
import { Res_Promise } from "@backend/common/types/express.types";

packages/backend/src/common/constants/error.constants.ts

Lines changed: 0 additions & 212 deletions
This file was deleted.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { Status } from "@core/errors/status.codes";
2+
import { ErrorMetadata } from "@backend/common/types/error.types";
3+
4+
interface AuthErrors {
5+
DevOnly: ErrorMetadata;
6+
InadequatePermissions: ErrorMetadata;
7+
MissingRefreshToken: ErrorMetadata;
8+
NoUserId: ErrorMetadata;
9+
NoGAuthAccessToken: ErrorMetadata;
10+
}
11+
12+
export const AuthError: AuthErrors = {
13+
DevOnly: {
14+
description: "Only available during development",
15+
status: Status.FORBIDDEN,
16+
isOperational: true,
17+
},
18+
InadequatePermissions: {
19+
description: "You don't have permission to do that",
20+
status: Status.FORBIDDEN,
21+
isOperational: true,
22+
},
23+
MissingRefreshToken: {
24+
description: "No refresh token",
25+
status: Status.BAD_REQUEST,
26+
isOperational: true,
27+
},
28+
NoUserId: {
29+
description: "Compass user was not created",
30+
status: Status.INTERNAL_SERVER,
31+
isOperational: false,
32+
},
33+
NoGAuthAccessToken: {
34+
description: "No gauth access token",
35+
status: Status.BAD_REQUEST,
36+
isOperational: true,
37+
},
38+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Status } from "@core/errors/status.codes";
2+
import { ErrorMetadata } from "@backend/common/types/error.types";
3+
4+
interface DbErrors {
5+
InvalidId: ErrorMetadata;
6+
}
7+
export const DbError: DbErrors = {
8+
InvalidId: {
9+
description: "id is invalid (according to Mongo)",
10+
status: Status.BAD_REQUEST,
11+
isOperational: true,
12+
},
13+
};

0 commit comments

Comments
 (0)