Browse Source

Merge user settings interfaces

pull/1239/head
Thomas 3 years ago
parent
commit
e04767f152
  1. 4
      apps/api/src/app/portfolio/portfolio.service.ts
  2. 5
      apps/api/src/app/user/interfaces/user-settings.interface.ts
  3. 3
      apps/api/src/app/user/user.controller.ts
  4. 13
      apps/client/src/app/components/home-summary/home-summary.component.ts
  5. 13
      apps/client/src/app/pages/portfolio/fire/fire-page.component.ts
  6. 1
      libs/common/src/lib/interfaces/user-settings.interface.ts

4
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 {

5
apps/api/src/app/user/interfaces/user-settings.interface.ts

@ -1,5 +0,0 @@
export interface UserSettings {
emergencyFund?: number;
locale?: string;
isRestrictedView?: boolean;
}

3
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';

13
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();
});
});
}

13
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() {

1
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;

Loading…
Cancel
Save