diff --git a/apps/api/src/app/portfolio/portfolio.service.spec.ts b/apps/api/src/app/portfolio/portfolio.service.spec.ts index 970b13734..7cc256cf6 100644 --- a/apps/api/src/app/portfolio/portfolio.service.spec.ts +++ b/apps/api/src/app/portfolio/portfolio.service.spec.ts @@ -247,7 +247,7 @@ describe('PortfolioService', () => { jest.spyOn(userService, 'user').mockResolvedValue({ accounts: [], - activityCount: 0, + activitiesCount: 0, dataProviderGhostfolioDailyRequests: 0, id: userDummyData.id, settings: { diff --git a/apps/api/src/app/user/user.service.ts b/apps/api/src/app/user/user.service.ts index d07e45d03..7f06dbcb4 100644 --- a/apps/api/src/app/user/user.service.ts +++ b/apps/api/src/app/user/user.service.ts @@ -62,7 +62,7 @@ import { EventEmitter2 } from '@nestjs/event-emitter'; import { InjectThrottlerStorage, ThrottlerStorage } from '@nestjs/throttler'; import { Prisma, Role, User } from '@prisma/client'; import { differenceInDays, subDays } from 'date-fns'; -import { isNil, min, without } from 'lodash'; +import { isNil, without } from 'lodash'; import { createHmac } from 'node:crypto'; @Injectable() @@ -152,6 +152,7 @@ export class UserService { this.prismaService.order.groupBy({ _min: { date: true }, by: ['type'], + orderBy: { _min: { date: 'asc' } }, where: { userId: impersonationUserId || user.id } }), impersonationUserId @@ -160,20 +161,18 @@ export class UserService { this.tagService.getTagsForUser(impersonationUserId || user.id) ]); - const activitiesCount = impersonationUser - ? impersonationUser.activitiesCount + const activitiesCount = impersonationUserId + ? (impersonationUser?.activitiesCount ?? 0) : user.activitiesCount; - const activityTypes = activitiesGroupedByType.map(({ type }) => { - return type; - }); + const activityTypes = activitiesGroupedByType + .map(({ type }) => { + return type; + }) + .sort(); const dateOfFirstActivity = - min( - activitiesGroupedByType.map(({ _min }) => { - return _min.date; - }) - ) ?? new Date(); + activitiesGroupedByType[0]?._min.date ?? new Date(); const resolvedUserSettings = resolveUserSettings({ impersonationUserSettings: impersonationUser?.settings @@ -345,7 +344,6 @@ export class UserService { settings: settings as UserWithSettings['settings'], thirdPartyId, updatedAt, - activityCount: analytics?.activityCount, dataProviderGhostfolioDailyRequests: analytics?.dataProviderGhostfolioDailyRequests ?? 0 }; diff --git a/libs/common/src/lib/types/user-with-settings.type.ts b/libs/common/src/lib/types/user-with-settings.type.ts index 61bab6572..b2261115f 100644 --- a/libs/common/src/lib/types/user-with-settings.type.ts +++ b/libs/common/src/lib/types/user-with-settings.type.ts @@ -7,7 +7,6 @@ import { Account, Settings, User } from '@prisma/client'; export type UserWithSettings = User & { accounts: Account[]; activitiesCount: number; - activityCount: number; dataProviderGhostfolioDailyRequests: number; permissions?: string[]; settings: Settings & { settings: UserSettings }; diff --git a/libs/ui/src/lib/activities-table/activities-table.component.html b/libs/ui/src/lib/activities-table/activities-table.component.html index 67fcef244..049324dc7 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.html +++ b/libs/ui/src/lib/activities-table/activities-table.component.html @@ -2,7 +2,9 @@ class="align-items-center d-flex justify-content-end justify-content-lg-between" >