Implement pagination in getAllOnboardingHostApplications handler and update MinglarService to support pagination options. Enhance response structure to include total count of applications.

This commit is contained in:
paritosh18
2025-12-01 17:05:08 +05:30
parent 067d1a1f1b
commit 1b31ca4a83
2 changed files with 33 additions and 5 deletions

View File

@@ -8,6 +8,7 @@ import { PrismaService } from '../../../../../common/database/prisma.service';
import { safeHandler } from '../../../../../common/utils/handlers/safeHandler';
import ApiError from '../../../../../common/utils/helper/ApiError';
import { MinglarService } from '../../../services/minglar.service';
import { paginationService } from '../../../../../common/utils/pagination/pagination.service';
const prismaService = new PrismaService();
const minglarService = new MinglarService(prismaService);
@@ -51,9 +52,23 @@ export const handler = safeHandler(
(queryParams.q as string) ||
undefined;
// Pagination
const paginationParams = paginationService.getPaginationFromEvent(event);
const paginationOptions =
paginationService.parsePaginationParams(paginationParams);
// Get all host applications from service based on user role
const hostApplications =
await minglarService.getAllOnboardingHostApplications(search);
const { data, totalCount } =
await minglarService.getAllOnboardingHostApplications(
paginationOptions,
search,
);
const paginatedResponse = paginationService.createPaginatedResponse(
data,
totalCount,
paginationOptions,
);
return {
statusCode: 200,
@@ -64,7 +79,7 @@ export const handler = safeHandler(
body: JSON.stringify({
success: true,
message: 'Host applications retrieved successfully',
data: hostApplications,
...paginatedResponse,
}),
};
},

View File

@@ -843,7 +843,10 @@ export class MinglarService {
};
}
async getAllOnboardingHostApplications(search?: string) {
async getAllOnboardingHostApplications(
paginationOptions?: PaginationOptions,
search?: string,
) {
const where: any = {
isActive: true,
hostStatusInternal: { notIn: [HOST_STATUS_INTERNAL.DRAFT] },
@@ -889,6 +892,8 @@ export class MinglarService {
];
}
const totalCount = await this.prisma.hostHeader.count({ where });
const onBoardingHostApp = await this.prisma.hostHeader.findMany({
where,
select: {
@@ -924,6 +929,11 @@ export class MinglarService {
},
},
},
orderBy: {
createdAt: 'desc',
},
skip: paginationOptions?.skip ?? 0,
take: paginationOptions?.limit ?? undefined,
});
const bucket = config.aws.bucketName;
@@ -943,7 +953,10 @@ export class MinglarService {
}
}
return onBoardingHostApp;
return {
data: onBoardingHostApp,
totalCount,
};
}
async getAllOnboardingHostApplications_New(