From c9693d2d58f0f7aaef9e22658db80aa899f3b1be Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Tue, 19 Nov 2024 14:01:38 +0100 Subject: [PATCH 1/2] Feature/upgrade countries and timezones to version 3.7.2 (#4021) * Upgrade countries-and-timezones to version 3.7.2 * Update changelog --- CHANGELOG.md | 1 + package-lock.json | 8 ++++---- package.json | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d6e5eb25..c87a00cd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Upgraded `countries-and-timezones` from version `3.4.1` to `3.7.2` - Upgraded `Nx` from version `20.0.6` to `20.1.2` ## 2.123.0 - 2024-11-16 diff --git a/package-lock.json b/package-lock.json index e51ca278c..7e1d1cd90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "class-transformer": "0.5.1", "class-validator": "0.14.1", "color": "4.2.3", - "countries-and-timezones": "3.4.1", + "countries-and-timezones": "3.7.2", "countries-list": "3.1.1", "countup.js": "2.8.0", "date-fns": "3.6.0", @@ -15270,9 +15270,9 @@ } }, "node_modules/countries-and-timezones": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/countries-and-timezones/-/countries-and-timezones-3.4.1.tgz", - "integrity": "sha512-INeHGCony4XUUR8iGL/lmt9s1Oi+n+gFHeJAMfbV5hJfYeDOB8JG1oxz5xFQu5oBZoRCJe/87k1Vzue9DoIauA==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/countries-and-timezones/-/countries-and-timezones-3.7.2.tgz", + "integrity": "sha512-BHAMt4pKb3U3r/mRfiIlVnDhRd8m6VC20gwCWtpZGZkSsjZmnMDKFnnjWYGWhBmypQAqcQILFJwmEhIgWGVTmw==", "license": "MIT", "engines": { "node": ">=8.x", diff --git a/package.json b/package.json index 1be0035b4..c2a6995ad 100644 --- a/package.json +++ b/package.json @@ -106,7 +106,7 @@ "class-transformer": "0.5.1", "class-validator": "0.14.1", "color": "4.2.3", - "countries-and-timezones": "3.4.1", + "countries-and-timezones": "3.7.2", "countries-list": "3.1.1", "countup.js": "2.8.0", "date-fns": "3.6.0", From 6d440eb777c14d40199171853391d6ca75575c80 Mon Sep 17 00:00:00 2001 From: QURBAN AHMAD <79472606+qur786@users.noreply.github.com> Date: Thu, 21 Nov 2024 00:50:11 +0530 Subject: [PATCH 2/2] Feature/add count to admin user endpoint response (#4058) * Add count to admin user endpoint response * Update changelog --- CHANGELOG.md | 1 + apps/api/src/app/admin/admin.service.ts | 25 +++++++++++++++++-- apps/client/src/app/services/admin.service.ts | 2 +- .../lib/interfaces/admin-users.interface.ts | 1 + 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c87a00cd1..3bad82b8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/apps/api/src/app/admin/admin.service.ts b/apps/api/src/app/admin/admin.service.ts index a0531c483..4abd47565 100644 --- a/apps/api/src/app/admin/admin.service.ts +++ b/apps/api/src/app/admin/admin.service.ts @@ -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 { - 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'); diff --git a/apps/client/src/app/services/admin.service.ts b/apps/client/src/app/services/admin.service.ts index 367c1b432..20cfa8ef8 100644 --- a/apps/client/src/app/services/admin.service.ts +++ b/apps/client/src/app/services/admin.service.ts @@ -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('/api/v1/admin/user', { params }); } diff --git a/libs/common/src/lib/interfaces/admin-users.interface.ts b/libs/common/src/lib/interfaces/admin-users.interface.ts index 24eb45c85..8fde15e18 100644 --- a/libs/common/src/lib/interfaces/admin-users.interface.ts +++ b/libs/common/src/lib/interfaces/admin-users.interface.ts @@ -1,6 +1,7 @@ import { Role } from '@prisma/client'; export interface AdminUsers { + count: number; users: { accountCount: number; country: string;