Skip to content

Commit d8f7b73

Browse files
committed
7
1 parent 6b0d06a commit d8f7b73

File tree

90 files changed

+516
-991
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+516
-991
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import {HttpException, HttpStatus} from "@nestjs/common";
2+
3+
export class GenericHttpException extends HttpException {
4+
constructor(e) {
5+
super(e, HttpStatus.INTERNAL_SERVER_ERROR);
6+
}
7+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import {ArgumentsHost, Catch, ExceptionFilter, HttpStatus} from "@nestjs/common";
2+
import {GenericHttpException} from "./generic-http.exception";
3+
4+
@Catch(GenericHttpException)
5+
export class HttpExceptionFilter implements ExceptionFilter {
6+
catch(exception: GenericHttpException, host: ArgumentsHost) {
7+
const ctx = host.switchToHttp();
8+
const response = ctx.getResponse();
9+
const request = ctx.getRequest();
10+
let error;
11+
const errorMsg = exception.message.substring(exception.message.indexOf(':')+1);
12+
if (!errorMsg.trim().startsWith('{')) {
13+
error = {
14+
statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
15+
message: errorMsg,
16+
timestamp: new Date().toISOString(),
17+
};
18+
} else {
19+
error = JSON.parse(errorMsg);
20+
}
21+
response
22+
.status(error.statusCode)
23+
.send({
24+
...error,
25+
path: request.url,
26+
});
27+
}
28+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import {CallHandler, ExecutionContext, Injectable, Logger, NestInterceptor} from "@nestjs/common";
2+
import {catchError} from "rxjs/operators";
3+
4+
@Injectable()
5+
export class HttpExceptionInterceptor implements NestInterceptor {
6+
intercept(context: ExecutionContext, next: CallHandler<any>) {
7+
return next.handle().pipe(catchError((error) => {
8+
const httpError = JSON.parse(error.details);
9+
Logger.error(httpError);
10+
context.switchToHttp().getResponse().status(httpError.statusCode).send(httpError);
11+
throw error;
12+
}));
13+
}
14+
15+
16+
}
Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1-
import { ArgumentsHost, Catch } from '@nestjs/common';
2-
import { BaseRpcExceptionFilter, RpcException } from '@nestjs/microservices';
3-
import { Observable, throwError } from 'rxjs';
4-
import { RpcExceptionModel } from './rpc-exception.model';
1+
import {ArgumentsHost, Catch} from '@nestjs/common';
2+
import {BaseRpcExceptionFilter, RpcException} from '@nestjs/microservices';
3+
import {Observable, throwError} from 'rxjs';
4+
import {RpcExceptionModel} from './rpc-exception.model';
55

66
@Catch(RpcException)
7-
export class ExceptionFilter extends BaseRpcExceptionFilter {
7+
export class ExceptionFilter extends BaseRpcExceptionFilter<RpcException> {
88
catch(e: RpcException, host: ArgumentsHost): Observable<RpcExceptionModel> {
9-
return throwError(() => e);
9+
const httpError = JSON.parse(e.message);
10+
return throwError(() => new RpcException({
11+
message: JSON.stringify({
12+
statusCode: httpError.statusCode,
13+
message: httpError.message,
14+
timestamp: new Date().toISOString(),
15+
})
16+
}));
1017
}
1118
}

apps/common/grpc-services.route.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ export const USERS_MANAGEMENT_GRPC_SERVICE: ClientOptions = {
3636
export const GRPC_ADMIN_SERVICE = 'AdminService';
3737
export const ADMIN_SERVICE_FIND_ALL = 'FindAll';
3838
export const ADMIN_SERVICE_VIEW_DETAIL = 'ViewDetail';
39+
export const ADMIN_SERVICE_UPDATE = 'Update';
40+
export const ADMIN_SERVICE_DELETE = 'Delete';
41+
export const ADMIN_SERVICE_CREATE = 'Create';
3942

4043
export const GRPC_CUSTOMER_SERVICE = 'CustomerService';
4144
export const CUSTOMER_SERVICE_FIND_ALL = 'FindAll';

apps/common/mappers/customer.mapper.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { CreateCustDto } from '../dtos/customer/create-customer.dto';
2-
import { CustomerEntity } from '../entities/customer.entity';
3-
import { UpdateCustDto } from '../dtos/customer/update-customer.dto';
4-
import { AccountStatus } from '../constants/enums';
1+
import {CreateCustDto} from '../dtos/customer/create-customer.dto';
2+
import {CustomerEntity} from '../entities/customer.entity';
3+
import {UpdateCustDto} from '../dtos/customer/update-customer.dto';
4+
import {AccountStatus} from '../constants/enums';
55

66
export class CustomerMapper {
77
static async mapCreateCustDtoToEntity(dto: CreateCustDto) : Promise<CustomerEntity>{

apps/common/mappers/package.mapper.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { CreatePackageDto } from '../dtos/package/create-package.dto';
2-
import { PackageEntity } from '../entities/package.entity';
3-
import { UpdatePackageDto } from '../dtos/package/update-package.dto';
4-
import { PackageStatus } from '../constants/enums';
5-
import { TrainerEntity } from '../entities/trainer.entity';
1+
import {CreatePackageDto} from '../dtos/package/create-package.dto';
2+
import {PackageEntity} from '../entities/package.entity';
3+
import {UpdatePackageDto} from '../dtos/package/update-package.dto';
4+
import {PackageStatus} from '../constants/enums';
5+
import {TrainerEntity} from '../entities/trainer.entity';
66

77
export class PackageMapper {
88

apps/common/mappers/trainer.mapper.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { CreateTrainerDto } from '../dtos/trainer/create-trainer.dto';
2-
import { TrainerEntity } from '../entities/trainer.entity';
3-
import { UpdateTrainerDto } from '../dtos/trainer/update-trainer.dto';
4-
import { AccountStatus } from '../constants/enums';
1+
import {CreateTrainerDto} from '../dtos/trainer/create-trainer.dto';
2+
import {TrainerEntity} from '../entities/trainer.entity';
3+
import {UpdateTrainerDto} from '../dtos/trainer/update-trainer.dto';
4+
import {AccountStatus} from '../constants/enums';
55

66
export class TrainerMapper {
77
static async mapCreateDtoToEntity(dto: CreateTrainerDto): Promise<TrainerEntity> {

apps/common/proto-models/users-mgnt.proto.ts

Lines changed: 43 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import {Observable} from "rxjs";
2-
import {Column, ManyToOne, PrimaryGeneratedColumn} from "typeorm";
32

43
export class AdminEntity {
54
email?: string;
@@ -13,18 +12,57 @@ export class AdminEntity {
1312
dob?: number;
1413
}
1514

15+
export type EmptyBody = {};
16+
17+
export type EmailBody = {
18+
email: string;
19+
}
20+
1621
export interface AdminService {
17-
findAll(data): Observable<AdminEntitiesResponse>;
18-
viewDetail(data: AdminEntityViewDetailRequest): Observable<AdminEntityResponse>;
22+
findAll(data: object): Observable<AdminEntitiesResponse>;
23+
24+
viewDetail(data: EmailBody): Observable<AdminEntityResponse>;
25+
26+
delete(data: EmailBody): Observable<any>;
27+
28+
update(data: UpdateAdminEntityRequest): Observable<AdminEntityResponse>;
29+
create(data): Observable<any>;
30+
}
31+
32+
export interface CustomerService {
33+
findAll(data: object): Observable<CustomerEntitiesResponse>;
34+
viewDetail(data: EmailBody): Observable<CustomerEntityResponse>;
35+
delete(data: EmailBody): Observable<any>;
36+
create(data): Observable<any>;
1937
}
2038

2139
export interface TrainerService {
2240
findAll(data): Observable<TrainerEntitiesResponse>;
41+
2342
viewDetail(data: TrainerEntityViewDetailRequest): Observable<TrainerEntityResponse>;
43+
delete(data: EmailBody): Observable<any>;
44+
create(data): Observable<any>;
2445
}
46+
2547
export interface CustomerService {
2648
findAll(data): Observable<CustomerEntitiesResponse>;
2749
viewDetail(data: CustomerEntityViewDetailRequest): Observable<CustomerEntityResponse>;
50+
update(data): Observable<any>;
51+
delete(data): Observable<any>;
52+
}
53+
54+
export type UpdateAdminEntityRequest = { email: string, payload: UpdateAdminEntity };
55+
56+
export type UpdateAdminEntity = {
57+
email?: string;
58+
password?: string;
59+
fullname?: string;
60+
address?: string;
61+
phone?: string;
62+
gender?: string;
63+
profileImage?: string;
64+
status?: number;
65+
dob?: number;
2866
}
2967

3068
export type AdminEntityViewDetailRequest = {
@@ -99,7 +137,7 @@ export type CampaignEntity = {
99137
startDate: number;
100138
endDate: number;
101139
feedback: string;
102-
customer : CustomerEntity;
140+
customer: CustomerEntity;
103141
}
104142

105143
export type PackageEntity = {
@@ -109,5 +147,5 @@ export type PackageEntity = {
109147
price: number;
110148
status: number;
111149
dietPlan: string;
112-
trainer : TrainerEntity;
150+
trainer: TrainerEntity;
113151
}

apps/common/routes/packages-management-routes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { UpdatePackageDto } from '../../weight-loss-consultant-users-mgnt-api/src/app/dtos/package/update-package';
1+
import {UpdatePackageDto} from '../../weight-loss-consultant-users-mgnt-api/src/app/dtos/package/update-package';
22

33
export const DELETE_PACKAGE_BY_ID = 'delete-package-by-id';
44
export const FIND_ALL_PACKAGES = 'find-all-packages';

0 commit comments

Comments
 (0)