openvidu/backend/src/controllers/user.controller.ts

37 lines
1.2 KiB
TypeScript

import { Request, Response } from 'express';
import { container } from '../config/index.js';
import { errorUnauthorized, handleError, rejectRequestFromMeetError } from '../models/error.model.js';
import { UserService } from '../services/index.js';
export const getProfile = (req: Request, res: Response) => {
const user = req.session?.user;
if (!user) {
const error = errorUnauthorized();
return rejectRequestFromMeetError(res, error);
}
const userService = container.get(UserService);
const userDTO = userService.convertToDTO(user);
return res.status(200).json(userDTO);
};
export const changePassword = async (req: Request, res: Response) => {
const user = req.session?.user;
if (!user) {
const error = errorUnauthorized();
return rejectRequestFromMeetError(res, error);
}
const { currentPassword, newPassword } = req.body as { currentPassword: string; newPassword: string };
try {
const userService = container.get(UserService);
await userService.changePassword(user.username, currentPassword, newPassword);
return res.status(200).json({ message: 'Password changed successfully' });
} catch (error) {
handleError(res, error, 'changing password');
}
};