diff --git a/apps/api/src/app/endpoints/activities/activities.controller.ts b/apps/api/src/app/endpoints/activities/activities.controller.ts index 80f2fdd474..99924c0b27 100644 --- a/apps/api/src/app/endpoints/activities/activities.controller.ts +++ b/apps/api/src/app/endpoints/activities/activities.controller.ts @@ -22,8 +22,7 @@ import { ActivitiesResponse, ActivityResponse, CreateActivityResponse, - DeleteActivityResponse, - UpdateActivityResponse + DeleteOrUpdateActivityResponse } from '@ghostfolio/common/interfaces'; import { permissions } from '@ghostfolio/common/permissions'; import { scopes } from '@ghostfolio/common/scopes'; @@ -41,6 +40,7 @@ import { Query, UseInterceptors } from '@nestjs/common'; +import { Order } from '@prisma/client'; import { parseISO } from 'date-fns'; import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { omit, pick } from 'lodash-es'; @@ -108,7 +108,7 @@ export class ActivitiesController { public async deleteActivity( @Impersonation() { userId }: ImpersonationContext, @Param('id') id: string - ): Promise { + ): Promise { const activity = await this.activitiesService.order({ id, userId @@ -125,22 +125,7 @@ export class ActivitiesController { id }); - return pick(deletedActivity, [ - 'accountId', - 'accountUserId', - 'comment', - 'createdAt', - 'currency', - 'date', - 'fee', - 'id', - 'quantity', - 'symbolProfileId', - 'type', - 'unitPrice', - 'updatedAt', - 'userId' - ]); + return this.getDeleteOrUpdateActivityResponse(deletedActivity); } @Get() @@ -330,7 +315,7 @@ export class ActivitiesController { userSubscription }: ImpersonationContext, @Param('id') id: string - ): Promise { + ): Promise { const originalActivity = await this.activitiesService.order({ id, userId @@ -418,6 +403,12 @@ export class ActivitiesController { } }); + return this.getDeleteOrUpdateActivityResponse(activity); + } + + private getDeleteOrUpdateActivityResponse( + activity: Order + ): DeleteOrUpdateActivityResponse { return pick(activity, [ 'accountId', 'accountUserId', diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index b1d7494841..dfd20f118f 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -68,7 +68,7 @@ import type { DataProviderResponse, DataProviderHistoricalResponse } from './responses/data-provider-response.interface'; -import type { DeleteActivityResponse } from './responses/delete-activity-response.interface'; +import type { DeleteOrUpdateActivityResponse } from './responses/delete-or-update-activity-response.interface'; import type { DividendsResponse } from './responses/dividends-response.interface'; import type { ResponseError } from './responses/errors.interface'; import type { ExchangeRateResponse } from './responses/exchange-rate-response.interface'; @@ -92,7 +92,6 @@ import type { PublicPortfolioResponse } from './responses/public-portfolio-respo import type { QuotesResponse } from './responses/quotes-response.interface'; import type { RedeemCouponResponse } from './responses/redeem-coupon-response.interface'; import type { SymbolResponse } from './responses/symbol-response.interface'; -import type { UpdateActivityResponse } from './responses/update-activity-response.interface'; import type { WatchlistResponse } from './responses/watchlist-response.interface'; import type { RuleSettings } from './rule-settings.interface'; import type { ScraperConfiguration } from './scraper-configuration.interface'; @@ -159,7 +158,7 @@ export { DataProviderHistoricalResponse, DataProviderInfo, DataProviderResponse, - DeleteActivityResponse, + DeleteOrUpdateActivityResponse, DividendsResponse, EnhancedAssetProfile, ExchangeRateResponse, @@ -213,7 +212,6 @@ export { SymbolItem, SymbolResponse, SystemMessage, - UpdateActivityResponse, User, UserItem, UserSettings, diff --git a/libs/common/src/lib/interfaces/responses/delete-activity-response.interface.ts b/libs/common/src/lib/interfaces/responses/delete-or-update-activity-response.interface.ts similarity index 81% rename from libs/common/src/lib/interfaces/responses/delete-activity-response.interface.ts rename to libs/common/src/lib/interfaces/responses/delete-or-update-activity-response.interface.ts index 813340b7ff..f5d9f683ce 100644 --- a/libs/common/src/lib/interfaces/responses/delete-activity-response.interface.ts +++ b/libs/common/src/lib/interfaces/responses/delete-or-update-activity-response.interface.ts @@ -1,6 +1,6 @@ import type { Order } from '@ghostfolio/prisma/browser'; -export interface DeleteActivityResponse extends Pick< +export interface DeleteOrUpdateActivityResponse extends Pick< Order, | 'accountId' | 'accountUserId' diff --git a/libs/common/src/lib/interfaces/responses/update-activity-response.interface.ts b/libs/common/src/lib/interfaces/responses/update-activity-response.interface.ts deleted file mode 100644 index 876e072211..0000000000 --- a/libs/common/src/lib/interfaces/responses/update-activity-response.interface.ts +++ /dev/null @@ -1,19 +0,0 @@ -import type { Order } from '@ghostfolio/prisma/browser'; - -export interface UpdateActivityResponse extends Pick< - Order, - | 'accountId' - | 'accountUserId' - | 'comment' - | 'createdAt' - | 'currency' - | 'date' - | 'fee' - | 'id' - | 'quantity' - | 'symbolProfileId' - | 'type' - | 'unitPrice' - | 'updatedAt' - | 'userId' -> {} diff --git a/libs/ui/src/lib/services/data.service.ts b/libs/ui/src/lib/services/data.service.ts index 50da312f46..1d363f75e7 100644 --- a/libs/ui/src/lib/services/data.service.ts +++ b/libs/ui/src/lib/services/data.service.ts @@ -42,7 +42,7 @@ import { CreateActivityResponse, CreateStripeCheckoutSessionResponse, DataProviderHealthResponse, - DeleteActivityResponse, + DeleteOrUpdateActivityResponse, ExportResponse, Filter, ImportResponse, @@ -62,7 +62,6 @@ import { PublicPortfolioResponse, RedeemCouponResponse, SymbolResponse, - UpdateActivityResponse, User, UserItem, WatchlistResponse @@ -354,7 +353,7 @@ export class DataService { } public deleteActivity(aId: string) { - return this.http.delete( + return this.http.delete( `/api/v1/activities/${aId}` ); } @@ -955,7 +954,7 @@ export class DataService { } public putActivity(aOrder: UpdateOrderDto) { - return this.http.put( + return this.http.put( `/api/v1/activities/${aOrder.id}`, aOrder );