Files
zerp/backend/src/modules/auth/auth.controller.ts
2026-03-05 12:16:29 +03:00

107 lines
2.7 KiB
TypeScript

import { Request, Response } from 'express'
import { authService } from './auth.service'
import { AuthRequest } from '../../shared/middleware/auth'
export const authController = {
register: async (req: Request, res: Response) => {
try {
const result = await authService.register(req.body)
res.status(201).json({
success: true,
message: 'تم التسجيل بنجاح',
data: result
})
} catch (error: any) {
res.status(400).json({
success: false,
message: error.message
})
}
},
login: async (req: Request, res: Response) => {
try {
const { email, password } = req.body
if (!email || !password) {
return res.status(400).json({
success: false,
message: 'الرجاء إدخال البريد/اسم المستخدم وكلمة المرور'
})
}
const result = await authService.login(String(email).trim(), String(password))
res.status(200).json({
success: true,
message: 'تم تسجيل الدخول بنجاح',
data: result
})
} catch (error: any) {
res.status(error?.statusCode || 401).json({
success: false,
message: error.message || 'بيانات الدخول غير صحيحة'
})
}
},
me: async (req: AuthRequest, res: Response) => {
try {
const userId = req.user?.id
if (!userId) {
return res.status(401).json({
success: false,
message: 'غير مصرح'
})
}
const user = await authService.getUserById(userId)
res.status(200).json({
success: true,
message: 'تم جلب البيانات بنجاح',
data: user
})
} catch (error: any) {
res.status(400).json({
success: false,
message: error.message
})
}
},
refreshToken: async (req: Request, res: Response) => {
try {
const { refreshToken } = req.body
const result = await authService.refreshToken(refreshToken)
res.status(200).json({
success: true,
message: 'تم تحديث الرمز بنجاح',
data: result
})
} catch (error: any) {
res.status(401).json({
success: false,
message: error.message
})
}
},
logout: async (req: AuthRequest, res: Response) => {
try {
const userId = req.user?.id
if (userId) {
await authService.logout(userId)
}
res.status(200).json({
success: true,
message: 'تم تسجيل الخروج بنجاح'
})
} catch (error: any) {
res.status(400).json({
success: false,
message: error.message
})
}
}
}