Browse Source

Task/harmonize response of update and delete activity endpoints (#8346)

Harmonize response of update and delete activity endpoints
pull/8352/head
Thomas Kaul 4 days ago
committed by GitHub
parent
commit
b633b1fd48
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 31
      apps/api/src/app/endpoints/activities/activities.controller.ts
  2. 6
      libs/common/src/lib/interfaces/index.ts
  3. 2
      libs/common/src/lib/interfaces/responses/delete-or-update-activity-response.interface.ts
  4. 19
      libs/common/src/lib/interfaces/responses/update-activity-response.interface.ts
  5. 7
      libs/ui/src/lib/services/data.service.ts

31
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<DeleteActivityResponse> {
): Promise<DeleteOrUpdateActivityResponse> {
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<UpdateActivityResponse> {
): Promise<DeleteOrUpdateActivityResponse> {
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',

6
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,

2
libs/common/src/lib/interfaces/responses/delete-activity-response.interface.ts → 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'

19
libs/common/src/lib/interfaces/responses/update-activity-response.interface.ts

@ -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'
> {}

7
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<DeleteActivityResponse>(
return this.http.delete<DeleteOrUpdateActivityResponse>(
`/api/v1/activities/${aId}`
);
}
@ -955,7 +954,7 @@ export class DataService {
}
public putActivity(aOrder: UpdateOrderDto) {
return this.http.put<UpdateActivityResponse>(
return this.http.put<DeleteOrUpdateActivityResponse>(
`/api/v1/activities/${aOrder.id}`,
aOrder
);

Loading…
Cancel
Save