Browse Source

Fix base currency in impersonation mode

pull/6964/head
Thomas Kaul 3 months ago
parent
commit
9205e11240
  1. 7
      apps/api/src/app/portfolio/portfolio.service.ts
  2. 16
      apps/api/src/app/user/user.service.ts

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

@ -164,7 +164,7 @@ export class PortfolioService {
};
}
const [accounts, details] = await Promise.all([
const [accounts, details, user] = await Promise.all([
this.accountService.accounts({
where,
include: {
@ -178,10 +178,11 @@ export class PortfolioService {
withExcludedAccounts,
impersonationId: userId,
userId: this.request.user.id
})
}),
this.userService.user({ id: userId })
]);
const userCurrency = this.request.user.settings.settings.baseCurrency;
const userCurrency = this.getUserCurrency(user);
return Promise.all(
accounts.map(async (account) => {

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

@ -49,7 +49,7 @@ import { PerformanceCalculationType } from '@ghostfolio/common/types/performance
import { Injectable } from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { Prisma, Role, User } from '@prisma/client';
import { Prisma, Role, Settings, User } from '@prisma/client';
import { differenceInDays, subDays } from 'date-fns';
import { without } from 'lodash';
import { createHmac } from 'node:crypto';
@ -134,6 +134,11 @@ export class UserService {
},
where: { userId: impersonationUserId || user.id }
}),
impersonationUserId
? this.prismaService.settings.findUnique({
where: { userId: impersonationUserId }
})
: Promise.resolve<Settings>(null),
this.tagService.getTagsForUser(impersonationUserId || user.id)
]);
@ -141,10 +146,16 @@ export class UserService {
const accounts = userData[1];
const activitiesCount = userData[2];
const firstActivity = userData[3];
let tags = userData[4].filter((tag) => {
const impersonationUserSettings = userData[4];
let tags = userData[5].filter((tag) => {
return tag.id !== TAG_ID_EXCLUDE_FROM_ANALYSIS;
});
const baseCurrency =
(impersonationUserSettings?.settings as UserSettings)?.baseCurrency ??
(settings.settings as UserSettings)?.baseCurrency;
let systemMessage: SystemMessage;
const systemMessageProperty =
@ -183,6 +194,7 @@ export class UserService {
dateOfFirstActivity: firstActivity?.date ?? new Date(),
settings: {
...(settings.settings as UserSettings),
baseCurrency,
locale: (settings.settings as UserSettings)?.locale ?? locale
}
};

Loading…
Cancel
Save