// userController.js const catchAsync = require('../../globalErrorHandler/catchAsync') const userService = require('./userService') exports.loginUser = catchAsync(async (req, res, next) => { const user = await userService.loginUser(req.body.rawPassword) const maxAge = 60 * 60 * 24 * 90 res.cookie('raw-password', user.rawPassword, { httpOnly: true, maxAge: maxAge * 1000, path: '/', }) res.status(200).json({ status: 'success', data: user, }) }) exports.logoutUser = catchAsync(async (req, res, next) => { res.cookie('raw-password', '', { httpOnly: true, maxAge: 0, path: '/', }) res.status(200).json({ status: 'success', message: 'کاربر خارج شد', }) }) exports.getAllUsers = catchAsync(async (req, res, next) => { const users = await userService.getAllUsers() res.status(200).json({ status: 'success', results: users.length, data: users, }) }) exports.getUser = catchAsync(async (req, res, next) => { const user = await userService.getUser(req.params.userId) res.status(200).json({ status: 'success', data: user, }) }) exports.createUser = catchAsync(async (req, res, next) => { const user = await userService.createUser(req.body) res.status(201).json({ status: 'success', data: user, }) }) exports.updateUser = catchAsync(async (req, res, next) => { const user = await userService.updateUser(req.params.userId, req.body) res.status(200).json({ status: 'success', data: user, }) }) exports.deleteUser = catchAsync(async (req, res, next) => { await userService.deleteUser(req.params.userId) res.status(204).json({ status: 'success', data: null, }) })