// src/controllers/AuthController.ts import { Request, Response} from 'express'; import { Pool } from 'mysql2/promise'; import logger from '../utils/logger'; import { UserService } from '../services'; export class UserController { private service: UserService; constructor(pool: Pool) { this.service = new UserService(pool); } getAllUsers = async (req: Request, res: Response) => { }; getUserById = async (req: Request, res: Response) => { try { const { username} = req.body; logger.info(`Get profile for: ${username}`); const user = await this.service.getUserByUsername(username); if (!user) { return res.status(404).json({ error: 'Invalid user' }); } res.json({ user: { id: user.id, username: user.username, email: user.email, role: user.role, }, }); } catch (err) { const error = err as Error; logger.error('Get profile error:', { message: error.message, stack: error.stack }); res.status(500).json({ message: 'Internal server error' }); } }; createUser = async (req: Request, res: Response) => { }; updateUser = async (req: Request, res: Response) => { }; deleteUser = async (req: Request, res: Response) => { }; }