57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
// 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) => {
|
|
|
|
};
|
|
|
|
}
|