Feature/add count to admin user endpoint response (#4058)

* Add count to admin user endpoint response

* Update changelog
main
QURBAN AHMAD 1 day ago committed by GitHub
parent c9693d2d58
commit 6d440eb777
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added ### Added
- Added pagination parameters (`skip`, `take`) to the endpoint `GET api/v1/admin/user` - Added pagination parameters (`skip`, `take`) to the endpoint `GET api/v1/admin/user`
- Added pagination response (`count`) to the endpoint `GET api/v1/admin/user`
### Changed ### Changed

@ -140,7 +140,7 @@ export class AdminService {
const [settings, transactionCount, userCount] = await Promise.all([ const [settings, transactionCount, userCount] = await Promise.all([
this.propertyService.get(), this.propertyService.get(),
this.prismaService.order.count(), this.prismaService.order.count(),
this.prismaService.user.count() this.countUsersWithAnalytics()
]); ]);
return { return {
@ -436,7 +436,12 @@ export class AdminService {
skip?: number; skip?: number;
take?: number; take?: number;
}): Promise<AdminUsers> { }): Promise<AdminUsers> {
return { users: await this.getUsersWithAnalytics({ skip, take }) }; const [count, users] = await Promise.all([
this.countUsersWithAnalytics(),
this.getUsersWithAnalytics({ skip, take })
]);
return { count, users };
} }
public async patchAssetProfileData({ public async patchAssetProfileData({
@ -514,6 +519,22 @@ export class AdminService {
return response; return response;
} }
private async countUsersWithAnalytics() {
let where: Prisma.UserWhereInput;
if (this.configurationService.get('ENABLE_FEATURE_SUBSCRIPTION')) {
where = {
NOT: {
Analytics: null
}
};
}
return this.prismaService.user.count({
where
});
}
private getExtendedPrismaClient() { private getExtendedPrismaClient() {
Logger.debug('Connect extended prisma client', 'AdminService'); Logger.debug('Connect extended prisma client', 'AdminService');

@ -159,7 +159,7 @@ export class AdminService {
public fetchUsers() { public fetchUsers() {
let params = new HttpParams(); let params = new HttpParams();
params = params.append('take', 100); params = params.append('take', 30);
return this.http.get<AdminUsers>('/api/v1/admin/user', { params }); return this.http.get<AdminUsers>('/api/v1/admin/user', { params });
} }

@ -1,6 +1,7 @@
import { Role } from '@prisma/client'; import { Role } from '@prisma/client';
export interface AdminUsers { export interface AdminUsers {
count: number;
users: { users: {
accountCount: number; accountCount: number;
country: string; country: string;

Loading…
Cancel
Save