diff --git a/backend/package-lock.json b/backend/package-lock.json index 37e4c3b..76e2f41 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -13,6 +13,7 @@ "drizzle-orm": "^1.0.0-rc.4", "express": "^5.1.0", "pg": "^8.22.0", + "typescript": "^6.0.3", "uuid": "^13.0.0" }, "devDependencies": { @@ -2341,6 +2342,19 @@ "url": "https://opencollective.com/express" } }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/undici-types": { "version": "7.18.2", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", diff --git a/backend/package.json b/backend/package.json index a8a2326..3032a88 100644 --- a/backend/package.json +++ b/backend/package.json @@ -13,6 +13,7 @@ "drizzle-orm": "^1.0.0-rc.4", "express": "^5.1.0", "pg": "^8.22.0", + "typescript": "^6.0.3", "uuid": "^13.0.0" }, "devDependencies": { diff --git a/backend/src/routes/users.ts b/backend/src/routes/users.ts index 8b160d8..e513ded 100644 --- a/backend/src/routes/users.ts +++ b/backend/src/routes/users.ts @@ -7,7 +7,12 @@ import { auth } from '../middleware/auth.ts'; const db = drizzle(process.env.DATABASE_URL!); export const usersRouter = express.Router(); -usersRouter.get("/getUsers", async (_: Request, res: Response) => { +usersRouter.get("/getUsers", auth, async (req: Request, res: Response) => { + if (req.jwt.payload.prm === 44) + return res + .status(401) + .json({ error: "Cannot access endpoint with default permissions" }); + const resp = await db.select().from(users); res.json(resp) }); diff --git a/backend/index.d.ts b/backend/src/types/express/index.d.ts similarity index 66% rename from backend/index.d.ts rename to backend/src/types/express/index.d.ts index 053940a..c48879f 100644 --- a/backend/index.d.ts +++ b/backend/src/types/express/index.d.ts @@ -1,4 +1,4 @@ -import JsonWebToken from './src/types/JsonWebToken.ts'; +import JsonWebToken from '../JsonWebToken.ts'; export { } diff --git a/backend/tsconfig.json b/backend/tsconfig.json new file mode 100644 index 0000000..9b66f38 --- /dev/null +++ b/backend/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "strict": true, + "esModuleInterop": true, + "allowImportingTsExtensions": true, + "skipLibCheck": true, + "types": [ + "node" + ] + }, + "include": [ + "src" + ] +}