Browse Source

Deprecate order endpoints in favor of activities endpoints

pull/6446/head
Thomas Kaul 1 month ago
parent
commit
2b35b1a05d
  1. 18
      apps/api/src/app/activities/activities.controller.ts
  2. 25
      apps/api/src/app/activities/activities.service.ts
  3. 2
      apps/api/src/app/endpoints/public/public.controller.ts
  4. 2
      apps/api/src/app/export/export.service.ts
  5. 6
      apps/api/src/app/import/import.service.ts
  6. 9
      apps/api/src/app/portfolio/current-rate.service.ts
  7. 2
      apps/api/src/app/portfolio/portfolio.controller.ts
  8. 2
      apps/api/src/app/portfolio/portfolio.service.ts
  9. 2
      apps/api/src/app/user/user.service.ts

18
apps/api/src/app/activities/activities.controller.ts

@ -77,7 +77,7 @@ export class ActivitiesController {
filterByTags
});
return this.activitiesService.deleteOrders({
return this.activitiesService.deleteActivities({
filters,
userId: this.request.user.id
});
@ -99,7 +99,7 @@ export class ActivitiesController {
);
}
return this.activitiesService.deleteOrder({
return this.activitiesService.deleteActivity({
id
});
}
@ -141,7 +141,7 @@ export class ActivitiesController {
await this.impersonationService.validateImpersonationId(impersonationId);
const userCurrency = this.request.user.settings.settings.baseCurrency;
const { activities, count } = await this.activitiesService.getOrders({
const { activities, count } = await this.activitiesService.getActivities({
endDate,
filters,
sortColumn,
@ -170,7 +170,7 @@ export class ActivitiesController {
await this.impersonationService.validateImpersonationId(impersonationId);
const userCurrency = this.request.user.settings.settings.baseCurrency;
const { activities } = await this.activitiesService.getOrders({
const { activities } = await this.activitiesService.getActivities({
userCurrency,
includeDrafts: true,
userId: impersonationUserId || this.request.user.id,
@ -231,7 +231,7 @@ export class ActivitiesController {
delete data.dataSource;
const order = await this.activitiesService.createOrder({
const activity = await this.activitiesService.createActivity({
...data,
date: parseISO(data.date),
SymbolProfile: {
@ -256,14 +256,14 @@ export class ActivitiesController {
userId: this.request.user.id
});
if (dataSource && !order.isDraft) {
if (dataSource && !activity.isDraft) {
// Gather symbol data in the background, if data source is set
// (not MANUAL) and not draft
this.dataGatheringService.gatherSymbols({
dataGatheringItems: [
{
dataSource,
date: order.date,
date: activity.date,
symbol: data.symbol
}
],
@ -271,7 +271,7 @@ export class ActivitiesController {
});
}
return order;
return activity;
}
@HasPermission(permissions.updateOrder)
@ -306,7 +306,7 @@ export class ActivitiesController {
delete data.dataSource;
return this.activitiesService.updateOrder({
return this.activitiesService.updateActivity({
data: {
...data,
date,

25
apps/api/src/app/activities/activities.service.ts

@ -96,7 +96,7 @@ export class ActivitiesService {
);
}
public async createOrder(
public async createActivity(
data: Prisma.OrderCreateInput & {
accountId?: string;
assetClass?: AssetClass;
@ -251,7 +251,7 @@ export class ActivitiesService {
return order;
}
public async deleteOrder(
public async deleteActivity(
where: Prisma.OrderWhereUniqueInput
): Promise<Order> {
const order = await this.prismaService.order.delete({
@ -277,14 +277,14 @@ export class ActivitiesService {
return order;
}
public async deleteOrders({
public async deleteActivities({
filters,
userId
}: {
filters?: Filter[];
userId: string;
}): Promise<number> {
const { activities } = await this.getOrders({
const { activities } = await this.getActivities({
filters,
userId,
includeDrafts: true,
@ -324,7 +324,7 @@ export class ActivitiesService {
}
/**
* Generates synthetic orders for cash holdings based on account balance history.
* Generates synthetic activities for cash holdings based on account balance history.
* Treat currencies as assets with a fixed unit price of 1.0 (in their own currency) to allow
* performance tracking based on exchange rate fluctuations.
*
@ -334,7 +334,7 @@ export class ActivitiesService {
* @param userId - The ID of the user.
* @returns A response containing the list of synthetic cash activities.
*/
public async getCashOrders({
public async getCashActivities({
cashDetails,
filters = [],
userCurrency,
@ -448,7 +448,10 @@ export class ActivitiesService {
};
}
public async getLatestOrder({ dataSource, symbol }: AssetProfileIdentifier) {
public async getLatestActivity({
dataSource,
symbol
}: AssetProfileIdentifier) {
return this.prismaService.order.findFirst({
orderBy: {
date: 'desc'
@ -459,7 +462,7 @@ export class ActivitiesService {
});
}
public async getOrders({
public async getActivities({
endDate,
filters,
includeDrafts = false,
@ -761,7 +764,7 @@ export class ActivitiesService {
/** Whether to include cash activities in the result. */
withCash?: boolean;
}) {
const orders = await this.getOrders({
const orders = await this.getActivities({
filters,
userCurrency,
userId,
@ -775,7 +778,7 @@ export class ActivitiesService {
currency: userCurrency
});
const cashOrders = await this.getCashOrders({
const cashOrders = await this.getCashActivities({
cashDetails,
filters,
userCurrency,
@ -817,7 +820,7 @@ export class ActivitiesService {
});
}
public async updateOrder({
public async updateActivity({
data,
where
}: {

2
apps/api/src/app/endpoints/public/public.controller.ts

@ -81,7 +81,7 @@ export class PublicController {
})
]);
const { activities } = await this.activitiesService.getOrders({
const { activities } = await this.activitiesService.getActivities({
sortColumn: 'date',
sortDirection: 'desc',
take: 10,

2
apps/api/src/app/export/export.service.ts

@ -38,7 +38,7 @@ export class ExportService {
});
const platformsMap: { [platformId: string]: Platform } = {};
let { activities } = await this.activitiesService.getOrders({
let { activities } = await this.activitiesService.getActivities({
filters,
userId,
includeDrafts: true,

6
apps/api/src/app/import/import.service.ts

@ -91,7 +91,7 @@ export class ImportService {
userId,
withExcludedAccounts: true
}),
this.activitiesService.getOrders({
this.activitiesService.getActivities({
filters,
userCurrency,
userId,
@ -548,7 +548,7 @@ export class ImportService {
continue;
}
order = await this.activitiesService.createOrder({
order = await this.activitiesService.createActivity({
comment,
currency,
date,
@ -645,7 +645,7 @@ export class ImportService {
userId: string;
}): Promise<Partial<Activity>[]> {
const { activities: existingActivities } =
await this.activitiesService.getOrders({
await this.activitiesService.getActivities({
userCurrency,
userId,
includeDrafts: true,

9
apps/api/src/app/portfolio/current-rate.service.ts

@ -129,10 +129,11 @@ export class CurrentRateService {
if (!value) {
// Fallback to unit price of latest activity
const latestActivity = await this.activitiesService.getLatestOrder({
dataSource,
symbol
});
const latestActivity =
await this.activitiesService.getLatestActivity({
dataSource,
symbol
});
value = {
dataSource,

2
apps/api/src/app/portfolio/portfolio.controller.ts

@ -322,7 +322,7 @@ export class PortfolioController {
const { endDate, startDate } = getIntervalFromDateRange(dateRange);
const { activities } = await this.activitiesService.getOrders({
const { activities } = await this.activitiesService.getActivities({
endDate,
filters,
startDate,

2
apps/api/src/app/portfolio/portfolio.service.ts

@ -1877,7 +1877,7 @@ export class PortfolioService {
userId = await this.getUserId(impersonationId, userId);
const user = await this.userService.user({ id: userId });
const { activities } = await this.activitiesService.getOrders({
const { activities } = await this.activitiesService.getActivities({
userCurrency,
userId,
withExcludedAccountsAndActivities: true

2
apps/api/src/app/user/user.service.ts

@ -643,7 +643,7 @@ export class UserService {
} catch {}
try {
await this.activitiesService.deleteOrders({
await this.activitiesService.deleteActivities({
userId: where.id
});
} catch {}

Loading…
Cancel
Save