Feature/add count to admin user endpoint response (#4058)
* Add count to admin user endpoint response * Update changelog
This commit is contained in:
parent
c9693d2d58
commit
6d440eb777
@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
### Added
|
||||
|
||||
- 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
|
||||
|
||||
|
@ -140,7 +140,7 @@ export class AdminService {
|
||||
const [settings, transactionCount, userCount] = await Promise.all([
|
||||
this.propertyService.get(),
|
||||
this.prismaService.order.count(),
|
||||
this.prismaService.user.count()
|
||||
this.countUsersWithAnalytics()
|
||||
]);
|
||||
|
||||
return {
|
||||
@ -436,7 +436,12 @@ export class AdminService {
|
||||
skip?: number;
|
||||
take?: number;
|
||||
}): 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({
|
||||
@ -514,6 +519,22 @@ export class AdminService {
|
||||
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() {
|
||||
Logger.debug('Connect extended prisma client', 'AdminService');
|
||||
|
||||
|
@ -159,7 +159,7 @@ export class AdminService {
|
||||
public fetchUsers() {
|
||||
let params = new HttpParams();
|
||||
|
||||
params = params.append('take', 100);
|
||||
params = params.append('take', 30);
|
||||
|
||||
return this.http.get<AdminUsers>('/api/v1/admin/user', { params });
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
import { Role } from '@prisma/client';
|
||||
|
||||
export interface AdminUsers {
|
||||
count: number;
|
||||
users: {
|
||||
accountCount: number;
|
||||
country: string;
|
||||
|
Loading…
x
Reference in New Issue
Block a user