79 lines
1.8 KiB
JavaScript
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,
|
|
})
|
|
})
|