role perms

This commit is contained in:
2025-11-12 09:28:56 +03:30
parent 046286b559
commit 440c3721ce
31 changed files with 488 additions and 98 deletions
+2
View File
@@ -19,6 +19,7 @@ export const enum AuthMessage {
INVALID_EMAIL_FORMAT = 'فرمت ایمیل صحیح نیست',
PasswordNotEmpty = 'پسورد نمیتواند خالی باشد.',
USER_NOT_FOUND = 'کاربری با این شماره وجود ندارد',
ADMIN_NOT_FOUND = 'ادمینی با این شماره وجود ندارد',
USER_EXISTS = 'با این شماره قبلا ثبت نام شده است',
USER_REGISTER_SUCCESS = 'ثبت نام موفقیت آمیز بود',
INVALID_USER = 'کاربری با این مشخصات یافت نشد',
@@ -69,6 +70,7 @@ export const enum AuthMessage {
export const enum UserMessage {
USER_NOT_FOUND = 'کاربری با این مشخصات یافت نشد',
Rest_NOT_FOUND = 'رستورانی با این مشخصات یافت نشد',
USER_EXISTS = 'با این شماره قبلا ثبت نام شده است',
USER_REGISTER_SUCCESS = 'ثبت نام موفقیت آمیز بود',
EMAIL_ADDRESS_ALREADY_EXISTS = 'ایمیل قبلا ثبت شده است',
@@ -1,33 +0,0 @@
import { ArgumentsHost, Catch, ExceptionFilter, HttpException } from '@nestjs/common';
import { Request, Response } from 'express';
@Catch(HttpException)
export class HttpErrorFilter implements ExceptionFilter {
catch(exception: HttpException, host: ArgumentsHost) {
const ctx = host.switchToHttp();
const response = ctx.getResponse<Response>();
const request = ctx.getRequest<Request>();
const status = exception.getStatus();
const exceptionResponse = exception.getResponse();
let messages: (string | object)[] = [];
if (typeof exceptionResponse === 'string') {
messages = [exceptionResponse];
} else if (typeof exceptionResponse === 'object' && exceptionResponse !== null && 'message' in exceptionResponse) {
messages = Array.isArray(exceptionResponse.message)
? (exceptionResponse.message as string[])
: [exceptionResponse.message as string];
} else messages = ['Unexpected error'];
const errorResponse = {
success: false,
timestamp: new Date().toISOString(),
path: request.url,
messages,
};
response.status(status).json(errorResponse);
}
}
@@ -1,15 +0,0 @@
import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from '@nestjs/common';
import { map, Observable } from 'rxjs';
@Injectable()
export class ResponseInterceptor<T> implements NestInterceptor<T, any> {
intercept(context: ExecutionContext, next: CallHandler<T>): Observable<any> {
return next.handle().pipe(
map(data => ({
success: true,
data,
timestamp: new Date().toISOString(),
})),
);
}
}