From e04767f152fa581f8d5c216a8a6adee47bd4ab99 Mon Sep 17 00:00:00 2001 From: Thomas <4159106+dtslvr@users.noreply.github.com> Date: Sat, 10 Sep 2022 09:52:33 +0200 Subject: [PATCH] Merge user settings interfaces --- apps/api/src/app/portfolio/portfolio.service.ts | 4 ++-- .../app/user/interfaces/user-settings.interface.ts | 5 ----- apps/api/src/app/user/user.controller.ts | 3 +-- .../home-summary/home-summary.component.ts | 13 +++++++++++-- .../app/pages/portfolio/fire/fire-page.component.ts | 13 ++++++++++++- .../src/lib/interfaces/user-settings.interface.ts | 1 + 6 files changed, 27 insertions(+), 12 deletions(-) delete mode 100644 apps/api/src/app/user/interfaces/user-settings.interface.ts diff --git a/apps/api/src/app/portfolio/portfolio.service.ts b/apps/api/src/app/portfolio/portfolio.service.ts index cae6d7a24..054fb0123 100644 --- a/apps/api/src/app/portfolio/portfolio.service.ts +++ b/apps/api/src/app/portfolio/portfolio.service.ts @@ -5,7 +5,6 @@ import { CurrentRateService } from '@ghostfolio/api/app/portfolio/current-rate.s import { PortfolioOrder } from '@ghostfolio/api/app/portfolio/interfaces/portfolio-order.interface'; import { TimelineSpecification } from '@ghostfolio/api/app/portfolio/interfaces/timeline-specification.interface'; import { TransactionPoint } from '@ghostfolio/api/app/portfolio/interfaces/transaction-point.interface'; -import { UserSettings } from '@ghostfolio/api/app/user/interfaces/user-settings.interface'; import { UserService } from '@ghostfolio/api/app/user/user.service'; import { AccountClusterRiskCurrentInvestment } from '@ghostfolio/api/models/rules/account-cluster-risk/current-investment'; import { AccountClusterRiskInitialInvestment } from '@ghostfolio/api/models/rules/account-cluster-risk/initial-investment'; @@ -35,7 +34,8 @@ import { PortfolioReport, PortfolioSummary, Position, - TimelinePosition + TimelinePosition, + UserSettings } from '@ghostfolio/common/interfaces'; import { InvestmentItem } from '@ghostfolio/common/interfaces/investment-item.interface'; import type { diff --git a/apps/api/src/app/user/interfaces/user-settings.interface.ts b/apps/api/src/app/user/interfaces/user-settings.interface.ts deleted file mode 100644 index 8f8878079..000000000 --- a/apps/api/src/app/user/interfaces/user-settings.interface.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface UserSettings { - emergencyFund?: number; - locale?: string; - isRestrictedView?: boolean; -} diff --git a/apps/api/src/app/user/user.controller.ts b/apps/api/src/app/user/user.controller.ts index e79f61dd4..53f29645a 100644 --- a/apps/api/src/app/user/user.controller.ts +++ b/apps/api/src/app/user/user.controller.ts @@ -1,7 +1,7 @@ import { ConfigurationService } from '@ghostfolio/api/services/configuration.service'; import { PropertyService } from '@ghostfolio/api/services/property/property.service'; import { PROPERTY_IS_READ_ONLY_MODE } from '@ghostfolio/common/config'; -import { User } from '@ghostfolio/common/interfaces'; +import { User, UserSettings } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import type { RequestWithUser } from '@ghostfolio/common/types'; import { @@ -25,7 +25,6 @@ import { StatusCodes, getReasonPhrase } from 'http-status-codes'; import { UserItem } from './interfaces/user-item.interface'; import { UserSettingsParams } from './interfaces/user-settings-params.interface'; -import { UserSettings } from './interfaces/user-settings.interface'; import { UpdateUserSettingDto } from './update-user-setting.dto'; import { UpdateUserSettingsDto } from './update-user-settings.dto'; import { UserService } from './user.service'; diff --git a/apps/client/src/app/components/home-summary/home-summary.component.ts b/apps/client/src/app/components/home-summary/home-summary.component.ts index e63471a46..106aba6c9 100644 --- a/apps/client/src/app/components/home-summary/home-summary.component.ts +++ b/apps/client/src/app/components/home-summary/home-summary.component.ts @@ -38,7 +38,7 @@ export class HomeSummaryComponent implements OnDestroy, OnInit { permissions.updateUserSettings ); - this.changeDetectorRef.markForCheck(); + this.update(); } }); } @@ -59,7 +59,16 @@ export class HomeSummaryComponent implements OnDestroy, OnInit { .putUserSetting({ emergencyFund }) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(() => { - this.update(); + this.userService.remove(); + + this.userService + .get() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((user) => { + this.user = user; + + this.changeDetectorRef.markForCheck(); + }); }); } diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts index 8004fd660..d4d6abb26 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts @@ -73,7 +73,18 @@ export class FirePageComponent implements OnDestroy, OnInit { this.dataService .putUserSetting({ savingsRate }) .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(() => {}); + .subscribe(() => { + this.userService.remove(); + + this.userService + .get() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((user) => { + this.user = user; + + this.changeDetectorRef.markForCheck(); + }); + }); } public ngOnDestroy() { diff --git a/libs/common/src/lib/interfaces/user-settings.interface.ts b/libs/common/src/lib/interfaces/user-settings.interface.ts index 58bc55485..5f16cee7e 100644 --- a/libs/common/src/lib/interfaces/user-settings.interface.ts +++ b/libs/common/src/lib/interfaces/user-settings.interface.ts @@ -4,6 +4,7 @@ import { ViewMode } from '@prisma/client'; export interface UserSettings { baseCurrency?: string; dateRange?: DateRange; + emergencyFund?: number; isExperimentalFeatures?: boolean; isRestrictedView?: boolean; language?: string;