From e03f58feff376957bfbc4e39bfddfed3098fb69e Mon Sep 17 00:00:00 2001 From: Thomas Kaul <4159106+dtslvr@users.noreply.github.com> Date: Sat, 25 Oct 2025 09:46:52 +0200 Subject: [PATCH] Task/refactor Activities interface to ActivitiesResponse interface (#5835) * Refactor Activities interface to ActivitiesResponse interface --- apps/api/src/app/order/interfaces/activities.interface.ts | 5 ----- apps/api/src/app/order/order.controller.ts | 8 +++++--- apps/api/src/app/order/order.service.ts | 5 ++--- apps/client/src/app/services/data.service.ts | 4 ++-- libs/common/src/lib/interfaces/index.ts | 2 ++ .../interfaces/responses/activities-response.interface.ts | 6 ++++++ 6 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 libs/common/src/lib/interfaces/responses/activities-response.interface.ts diff --git a/apps/api/src/app/order/interfaces/activities.interface.ts b/apps/api/src/app/order/interfaces/activities.interface.ts index 01a5a60f0..8c88cc2cf 100644 --- a/apps/api/src/app/order/interfaces/activities.interface.ts +++ b/apps/api/src/app/order/interfaces/activities.interface.ts @@ -3,11 +3,6 @@ import { AccountWithPlatform } from '@ghostfolio/common/types'; import { Order, Tag } from '@prisma/client'; -export interface Activities { - activities: Activity[]; - count: number; -} - export interface Activity extends Order { account?: AccountWithPlatform; error?: ActivityError; diff --git a/apps/api/src/app/order/order.controller.ts b/apps/api/src/app/order/order.controller.ts index 86228cf2e..d6c231059 100644 --- a/apps/api/src/app/order/order.controller.ts +++ b/apps/api/src/app/order/order.controller.ts @@ -11,7 +11,10 @@ import { DATA_GATHERING_QUEUE_PRIORITY_HIGH, HEADER_KEY_IMPERSONATION } from '@ghostfolio/common/config'; -import { ActivityResponse } from '@ghostfolio/common/interfaces'; +import { + ActivitiesResponse, + ActivityResponse +} from '@ghostfolio/common/interfaces'; import { permissions } from '@ghostfolio/common/permissions'; import type { DateRange, RequestWithUser } from '@ghostfolio/common/types'; @@ -37,7 +40,6 @@ import { parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { CreateOrderDto } from './create-order.dto'; -import { Activities } from './interfaces/activities.interface'; import { OrderService } from './order.service'; import { UpdateOrderDto } from './update-order.dto'; @@ -114,7 +116,7 @@ export class OrderController { @Query('symbol') filterBySymbol?: string, @Query('tags') filterByTags?: string, @Query('take') take?: number - ): Promise { + ): Promise { let endDate: Date; let startDate: Date; diff --git a/apps/api/src/app/order/order.service.ts b/apps/api/src/app/order/order.service.ts index 2b5d14150..e4c642977 100644 --- a/apps/api/src/app/order/order.service.ts +++ b/apps/api/src/app/order/order.service.ts @@ -14,6 +14,7 @@ import { } from '@ghostfolio/common/config'; import { getAssetProfileIdentifier } from '@ghostfolio/common/helper'; import { + ActivitiesResponse, AssetProfileIdentifier, EnhancedSymbolProfile, Filter @@ -37,8 +38,6 @@ import { endOfToday, isAfter } from 'date-fns'; import { groupBy, uniqBy } from 'lodash'; import { v4 as uuidv4 } from 'uuid'; -import { Activities } from './interfaces/activities.interface'; - @Injectable() export class OrderService { public constructor( @@ -345,7 +344,7 @@ export class OrderService { userCurrency: string; userId: string; withExcludedAccountsAndActivities?: boolean; - }): Promise { + }): Promise { let orderBy: Prisma.Enumerable = [ { date: 'asc' } ]; diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index a32bc6d3e..6f0b17ed1 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -9,7 +9,6 @@ import { CreateTagDto } from '@ghostfolio/api/app/endpoints/tags/create-tag.dto' import { UpdateTagDto } from '@ghostfolio/api/app/endpoints/tags/update-tag.dto'; import { CreateWatchlistItemDto } from '@ghostfolio/api/app/endpoints/watchlist/create-watchlist-item.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; -import { Activities } from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; import { SymbolItem } from '@ghostfolio/api/app/symbol/interfaces/symbol-item.interface'; import { DeleteOwnUserDto } from '@ghostfolio/api/app/user/delete-own-user.dto'; @@ -24,6 +23,7 @@ import { AccessTokenResponse, AccountBalancesResponse, AccountsResponse, + ActivitiesResponse, ActivityResponse, AiPromptResponse, ApiKeyResponse, @@ -215,7 +215,7 @@ export class DataService { sortColumn?: string; sortDirection?: SortDirection; take?: number; - }): Observable { + }): Observable { let params = this.buildFiltersAsQueryParams({ filters }); if (range) { diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index 828a65974..eac5db68c 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -37,6 +37,7 @@ import type { Product } from './product'; import type { AccessTokenResponse } from './responses/access-token-response.interface'; import type { AccountBalancesResponse } from './responses/account-balances-response.interface'; import type { AccountsResponse } from './responses/accounts-response.interface'; +import type { ActivitiesResponse } from './responses/activities-response.interface'; import type { ActivityResponse } from './responses/activity-response.interface'; import type { AiPromptResponse } from './responses/ai-prompt-response.interface'; import type { ApiKeyResponse } from './responses/api-key-response.interface'; @@ -84,6 +85,7 @@ export { AccountBalance, AccountBalancesResponse, AccountsResponse, + ActivitiesResponse, ActivityResponse, AdminData, AdminJobs, diff --git a/libs/common/src/lib/interfaces/responses/activities-response.interface.ts b/libs/common/src/lib/interfaces/responses/activities-response.interface.ts new file mode 100644 index 000000000..e6abe4618 --- /dev/null +++ b/libs/common/src/lib/interfaces/responses/activities-response.interface.ts @@ -0,0 +1,6 @@ +import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; + +export interface ActivitiesResponse { + activities: Activity[]; + count: number; +}