Browse Source

Task/improve type safety in rule models (#7422)

* fix(api): make some env optional

* fix(api): resolve type errors in rules
pull/7426/head
Kenrick Tandrian 5 days ago
committed by GitHub
parent
commit
c197806e6b
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      apps/api/src/models/rule.ts
  2. 14
      apps/api/src/models/rules/account-cluster-risk/current-investment.ts
  3. 6
      apps/api/src/models/rules/account-cluster-risk/single-account.ts
  4. 5
      apps/api/src/models/rules/asset-class-cluster-risk/equity.ts
  5. 5
      apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts
  6. 5
      apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts
  7. 5
      apps/api/src/models/rules/currency-cluster-risk/current-investment.ts
  8. 5
      apps/api/src/models/rules/economic-market-cluster-risk/developed-markets.ts
  9. 5
      apps/api/src/models/rules/economic-market-cluster-risk/emerging-markets.ts
  10. 5
      apps/api/src/models/rules/emergency-fund/emergency-fund-setup.ts
  11. 5
      apps/api/src/models/rules/fees/fee-ratio-total-investment-volume.ts
  12. 5
      apps/api/src/models/rules/liquidity/buying-power.ts
  13. 5
      apps/api/src/models/rules/regional-market-cluster-risk/asia-pacific.ts
  14. 5
      apps/api/src/models/rules/regional-market-cluster-risk/emerging-markets.ts
  15. 5
      apps/api/src/models/rules/regional-market-cluster-risk/europe.ts
  16. 5
      apps/api/src/models/rules/regional-market-cluster-risk/japan.ts
  17. 5
      apps/api/src/models/rules/regional-market-cluster-risk/north-america.ts
  18. 6
      apps/api/src/services/interfaces/environment.interface.ts

2
apps/api/src/models/rule.ts

@ -59,7 +59,7 @@ export abstract class Rule<T extends RuleSettings> implements RuleInterface<T> {
new Big(currentValue.quantity) new Big(currentValue.quantity)
.mul(currentValue.marketPrice ?? 0) .mul(currentValue.marketPrice ?? 0)
.toNumber(), .toNumber(),
currentValue.assetProfile.currency, currentValue.assetProfile.currency ?? baseCurrency,
baseCurrency baseCurrency
), ),
0 0

14
apps/api/src/models/rules/account-cluster-risk/current-investment.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { import {
PortfolioDetails, PortfolioDetails,
RuleSettings, RuleSettings,
@ -50,7 +51,7 @@ export class AccountClusterRiskCurrentInvestment extends Rule<Settings> {
}; };
} }
let maxAccount: (typeof accounts)[0]; let maxAccount: (typeof accounts)[0] | undefined;
let totalInvestment = 0; let totalInvestment = 0;
for (const account of Object.values(accounts)) { for (const account of Object.values(accounts)) {
@ -67,7 +68,8 @@ export class AccountClusterRiskCurrentInvestment extends Rule<Settings> {
} }
} }
const maxInvestmentRatio = maxAccount?.investment / totalInvestment || 0; const maxInvestmentRatio =
(maxAccount?.investment ?? 0) / totalInvestment || 0;
if (maxInvestmentRatio > ruleSettings.thresholdMax) { if (maxInvestmentRatio > ruleSettings.thresholdMax) {
return { return {
@ -75,7 +77,7 @@ export class AccountClusterRiskCurrentInvestment extends Rule<Settings> {
id: 'rule.accountClusterRiskCurrentInvestment.false', id: 'rule.accountClusterRiskCurrentInvestment.false',
languageCode: this.getLanguageCode(), languageCode: this.getLanguageCode(),
placeholders: { placeholders: {
maxAccountName: maxAccount.name, maxAccountName: maxAccount?.name ?? '',
maxInvestmentRatio: (maxInvestmentRatio * 100).toPrecision(3), maxInvestmentRatio: (maxInvestmentRatio * 100).toPrecision(3),
thresholdMax: ruleSettings.thresholdMax * 100 thresholdMax: ruleSettings.thresholdMax * 100
} }
@ -89,7 +91,7 @@ export class AccountClusterRiskCurrentInvestment extends Rule<Settings> {
id: 'rule.accountClusterRiskCurrentInvestment.true', id: 'rule.accountClusterRiskCurrentInvestment.true',
languageCode: this.getLanguageCode(), languageCode: this.getLanguageCode(),
placeholders: { placeholders: {
maxAccountName: maxAccount.name, maxAccountName: maxAccount?.name ?? '',
maxInvestmentRatio: (maxInvestmentRatio * 100).toPrecision(3), maxInvestmentRatio: (maxInvestmentRatio * 100).toPrecision(3),
thresholdMax: ruleSettings.thresholdMax * 100 thresholdMax: ruleSettings.thresholdMax * 100
} }
@ -118,8 +120,8 @@ export class AccountClusterRiskCurrentInvestment extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

6
apps/api/src/models/rules/account-cluster-risk/single-account.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { import {
PortfolioDetails, PortfolioDetails,
RuleSettings, RuleSettings,
@ -68,7 +69,10 @@ export class AccountClusterRiskSingleAccount extends Rule<RuleSettings> {
}); });
} }
public getSettings({ locale, xRayRules }: UserSettings): RuleSettings { public getSettings({
locale = DEFAULT_LOCALE,
xRayRules
}: UserSettings): RuleSettings {
return { return {
locale, locale,
isActive: xRayRules?.[this.getKey()]?.isActive ?? true isActive: xRayRules?.[this.getKey()]?.isActive ?? true

5
apps/api/src/models/rules/asset-class-cluster-risk/equity.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { import {
PortfolioPosition, PortfolioPosition,
RuleSettings, RuleSettings,
@ -107,8 +108,8 @@ export class AssetClassClusterRiskEquity extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/asset-class-cluster-risk/fixed-income.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { import {
PortfolioPosition, PortfolioPosition,
RuleSettings, RuleSettings,
@ -107,8 +108,8 @@ export class AssetClassClusterRiskFixedIncome extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/currency-cluster-risk/base-currency-current-investment.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { import {
PortfolioPosition, PortfolioPosition,
RuleSettings, RuleSettings,
@ -94,8 +95,8 @@ export class CurrencyClusterRiskBaseCurrencyCurrentInvestment extends Rule<Setti
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/currency-cluster-risk/current-investment.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { import {
PortfolioPosition, PortfolioPosition,
RuleSettings, RuleSettings,
@ -95,8 +96,8 @@ export class CurrencyClusterRiskCurrentInvestment extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/economic-market-cluster-risk/developed-markets.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces'; import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces';
export class EconomicMarketClusterRiskDevelopedMarkets extends Rule<Settings> { export class EconomicMarketClusterRiskDevelopedMarkets extends Rule<Settings> {
@ -97,8 +98,8 @@ export class EconomicMarketClusterRiskDevelopedMarkets extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/economic-market-cluster-risk/emerging-markets.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces'; import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces';
export class EconomicMarketClusterRiskEmergingMarkets extends Rule<Settings> { export class EconomicMarketClusterRiskEmergingMarkets extends Rule<Settings> {
@ -97,8 +98,8 @@ export class EconomicMarketClusterRiskEmergingMarkets extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/emergency-fund/emergency-fund-setup.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces'; import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces';
export class EmergencyFundSetup extends Rule<Settings> { export class EmergencyFundSetup extends Rule<Settings> {
@ -52,8 +53,8 @@ export class EmergencyFundSetup extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/fees/fee-ratio-total-investment-volume.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces'; import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces';
export class FeeRatioTotalInvestmentVolume extends Rule<Settings> { export class FeeRatioTotalInvestmentVolume extends Rule<Settings> {
@ -76,8 +77,8 @@ export class FeeRatioTotalInvestmentVolume extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/liquidity/buying-power.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces'; import { RuleSettings, UserSettings } from '@ghostfolio/common/interfaces';
export class BuyingPower extends Rule<Settings> { export class BuyingPower extends Rule<Settings> {
@ -83,8 +84,8 @@ export class BuyingPower extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/regional-market-cluster-risk/asia-pacific.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { UserSettings } from '@ghostfolio/common/interfaces'; import { UserSettings } from '@ghostfolio/common/interfaces';
import { Settings } from './interfaces/rule-settings.interface'; import { Settings } from './interfaces/rule-settings.interface';
@ -91,8 +92,8 @@ export class RegionalMarketClusterRiskAsiaPacific extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/regional-market-cluster-risk/emerging-markets.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { UserSettings } from '@ghostfolio/common/interfaces'; import { UserSettings } from '@ghostfolio/common/interfaces';
import { Settings } from './interfaces/rule-settings.interface'; import { Settings } from './interfaces/rule-settings.interface';
@ -93,8 +94,8 @@ export class RegionalMarketClusterRiskEmergingMarkets extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/regional-market-cluster-risk/europe.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { UserSettings } from '@ghostfolio/common/interfaces'; import { UserSettings } from '@ghostfolio/common/interfaces';
import { Settings } from './interfaces/rule-settings.interface'; import { Settings } from './interfaces/rule-settings.interface';
@ -91,8 +92,8 @@ export class RegionalMarketClusterRiskEurope extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/regional-market-cluster-risk/japan.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { UserSettings } from '@ghostfolio/common/interfaces'; import { UserSettings } from '@ghostfolio/common/interfaces';
import { Settings } from './interfaces/rule-settings.interface'; import { Settings } from './interfaces/rule-settings.interface';
@ -91,8 +92,8 @@ export class RegionalMarketClusterRiskJapan extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

5
apps/api/src/models/rules/regional-market-cluster-risk/north-america.ts

@ -1,6 +1,7 @@
import { Rule } from '@ghostfolio/api/models/rule'; import { Rule } from '@ghostfolio/api/models/rule';
import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service'; import { ExchangeRateDataService } from '@ghostfolio/api/services/exchange-rate-data/exchange-rate-data.service';
import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service'; import { I18nService } from '@ghostfolio/api/services/i18n/i18n.service';
import { DEFAULT_CURRENCY, DEFAULT_LOCALE } from '@ghostfolio/common/config';
import { UserSettings } from '@ghostfolio/common/interfaces'; import { UserSettings } from '@ghostfolio/common/interfaces';
import { Settings } from './interfaces/rule-settings.interface'; import { Settings } from './interfaces/rule-settings.interface';
@ -91,8 +92,8 @@ export class RegionalMarketClusterRiskNorthAmerica extends Rule<Settings> {
} }
public getSettings({ public getSettings({
baseCurrency, baseCurrency = DEFAULT_CURRENCY,
locale, locale = DEFAULT_LOCALE,
xRayRules xRayRules
}: UserSettings): Settings { }: UserSettings): Settings {
return { return {

6
apps/api/src/services/interfaces/environment.interface.ts

@ -38,9 +38,9 @@ export interface Environment extends CleanedEnvAccessors {
MAX_CHART_ITEMS: number; MAX_CHART_ITEMS: number;
OIDC_AUTHORIZATION_URL: string; OIDC_AUTHORIZATION_URL: string;
OIDC_CALLBACK_URL: string; OIDC_CALLBACK_URL: string;
OIDC_CLIENT_ID: string; OIDC_CLIENT_ID?: string;
OIDC_CLIENT_SECRET: string; OIDC_CLIENT_SECRET?: string;
OIDC_ISSUER: string; OIDC_ISSUER?: string;
OIDC_SCOPE: string[]; OIDC_SCOPE: string[];
OIDC_TOKEN_URL: string; OIDC_TOKEN_URL: string;
OIDC_USER_INFO_URL: string; OIDC_USER_INFO_URL: string;

Loading…
Cancel
Save