diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d214c457..0932508a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Changed the navigation to always show the portfolio page - Migrated the data type of currencies from `enum` to `string` in the database - Supported unlimited currencies (instead of `CHF`, `EUR`, `GBP` and `USD`) +- Respected the accounts' currencies in the exchange rate service ### Fixed diff --git a/apps/api/src/services/exchange-rate-data.service.ts b/apps/api/src/services/exchange-rate-data.service.ts index a47df3d14..729d803b3 100644 --- a/apps/api/src/services/exchange-rate-data.service.ts +++ b/apps/api/src/services/exchange-rate-data.service.ts @@ -168,28 +168,34 @@ export class ExchangeRateDataService { private async prepareCurrencies(): Promise { const currencies: string[] = []; - const settings = await this.prismaService.settings.findMany({ - distinct: ['currency'], - orderBy: [{ currency: 'asc' }], - select: { currency: true } - }); - - settings.forEach((settingsItem) => { - if (settingsItem.currency) { - currencies.push(settingsItem.currency); - } + ( + await this.prismaService.account.findMany({ + distinct: ['currency'], + orderBy: [{ currency: 'asc' }], + select: { currency: true } + }) + ).forEach((account) => { + currencies.push(account.currency); }); - const symbolProfiles = await this.prismaService.symbolProfile.findMany({ - distinct: ['currency'], - orderBy: [{ currency: 'asc' }], - select: { currency: true } + ( + await this.prismaService.settings.findMany({ + distinct: ['currency'], + orderBy: [{ currency: 'asc' }], + select: { currency: true } + }) + ).forEach((userSettings) => { + currencies.push(userSettings.currency); }); - symbolProfiles.forEach((symbolProfile) => { - if (symbolProfile.currency) { - currencies.push(symbolProfile.currency); - } + ( + await this.prismaService.symbolProfile.findMany({ + distinct: ['currency'], + orderBy: [{ currency: 'asc' }], + select: { currency: true } + }) + ).forEach((symbolProfile) => { + currencies.push(symbolProfile.currency); }); return uniq(currencies).sort();