Browse Source
Task/refactor Activities interface to ActivitiesResponse interface (#5835)
* Refactor Activities interface to ActivitiesResponse interface
pull/5786/head
Thomas Kaul
5 days ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with
17 additions and
13 deletions
-
apps/api/src/app/order/interfaces/activities.interface.ts
-
apps/api/src/app/order/order.controller.ts
-
apps/api/src/app/order/order.service.ts
-
apps/client/src/app/services/data.service.ts
-
libs/common/src/lib/interfaces/index.ts
-
libs/common/src/lib/interfaces/responses/activities-response.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; |
|
|
|
|
|
|
|
@ -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<Activities> { |
|
|
|
): Promise<ActivitiesResponse> { |
|
|
|
let endDate: Date; |
|
|
|
let startDate: Date; |
|
|
|
|
|
|
|
|
|
|
|
@ -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<Activities> { |
|
|
|
}): Promise<ActivitiesResponse> { |
|
|
|
let orderBy: Prisma.Enumerable<Prisma.OrderOrderByWithRelationInput> = [ |
|
|
|
{ date: 'asc' } |
|
|
|
]; |
|
|
|
|
|
|
|
@ -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<Activities> { |
|
|
|
}): Observable<ActivitiesResponse> { |
|
|
|
let params = this.buildFiltersAsQueryParams({ filters }); |
|
|
|
|
|
|
|
if (range) { |
|
|
|
|
|
|
|
@ -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, |
|
|
|
|
|
|
|
@ -0,0 +1,6 @@ |
|
|
|
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; |
|
|
|
|
|
|
|
export interface ActivitiesResponse { |
|
|
|
activities: Activity[]; |
|
|
|
count: number; |
|
|
|
} |