import express, { Router, Request, Response } from "express"; import { client } from "../db"; import { DatabaseError } from "pg"; import { UserAuth } from "../middlewares/auth"; import { AuthedRequest } from "../interfaces/auth"; const router: Router = express.Router(); interface UserObject { first_name: string last_name: string email: string isAdmin: boolean isTrainer: boolean } router.get("/user", UserAuth, async (req: AuthedRequest, res: Response) => { try { const databaseResult = await client.query(` SELECT first_name, last_name, email, is_admin as isAdmin, trainers.user_id IS NOT NULL as isTrainer FROM users LEFT JOIN trainers ON trainers.user_id = users.id WHERE users.id = $1; `, [ req.user?.userId ]); const user: UserObject = databaseResult.rows[0]; return res.status(200).send(user); } catch (error: DatabaseError | Error | any) { console.error(error); return res.sendStatus(500); } }) export default router;