Files
mbmanager-api/components/user/userController.js
T
2024-12-22 16:52:30 +03:30

79 lines
1.8 KiB
JavaScript

// 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,
})
})