Browse Source

Refactoring

pull/5923/head
David Requeno 1 month ago
parent
commit
627a58ffe0
  1. 4
      apps/client/src/app/components/admin-users/admin-users.component.ts
  2. 23
      apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts
  3. 13
      apps/client/src/app/services/admin.service.ts

4
apps/client/src/app/components/admin-users/admin-users.component.ts

@ -289,10 +289,10 @@ export class GfAdminUsersComponent implements OnDestroy, OnInit {
>(GfUserDetailDialogComponent, {
autoFocus: false,
data: {
userId: aUserId,
deviceType: this.deviceType,
hasPermissionForSubscription: this.hasPermissionForSubscription,
locale: this.user?.settings?.locale
locale: this.user?.settings?.locale,
userId: aUserId
},
height: this.deviceType === 'mobile' ? '98vh' : '60vh',
width: this.deviceType === 'mobile' ? '100vw' : '50rem'

23
apps/client/src/app/components/user-detail-dialog/user-detail-dialog.component.ts

@ -6,14 +6,14 @@ import {
ChangeDetectionStrategy,
Component,
CUSTOM_ELEMENTS_SCHEMA,
OnInit,
Inject,
OnDestroy
OnDestroy,
OnInit
} from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { MatDialogModule } from '@angular/material/dialog';
import { Subject, EMPTY } from 'rxjs';
import { EMPTY, Subject } from 'rxjs';
import { catchError, finalize, takeUntil } from 'rxjs/operators';
import { NotificationService } from '../../core/notification/notification.service';
@ -38,32 +38,35 @@ import { UserDetailDialogParams } from './interfaces/interfaces';
styleUrls: ['./user-detail-dialog.component.scss'],
templateUrl: './user-detail-dialog.html'
})
export class GfUserDetailDialogComponent implements OnInit, OnDestroy {
private unsubscribeSubject = new Subject<void>();
export class GfUserDetailDialogComponent implements OnDestroy, OnInit {
public isLoading = true;
public user: AdminUserResponse;
private unsubscribeSubject = new Subject<void>();
public constructor(
@Inject(MAT_DIALOG_DATA) public data: UserDetailDialogParams,
public dialogRef: MatDialogRef<GfUserDetailDialogComponent>,
private adminService: AdminService,
private notificationService: NotificationService
private notificationService: NotificationService,
public dialogRef: MatDialogRef<GfUserDetailDialogComponent>
) {}
public ngOnInit(): void {
public ngOnInit() {
this.adminService
.fetchUserById(this.data.userId)
.pipe(
takeUntil(this.unsubscribeSubject),
finalize(() => (this.isLoading = false)),
catchError(() => {
this.notificationService.alert({
title: $localize`User`,
message: $localize`Unable to load user`
});
this.dialogRef.close();
return EMPTY;
})
}),
finalize(() => (this.isLoading = false))
)
.subscribe((user) => {
this.user = user;

13
apps/client/src/app/services/admin.service.ts

@ -8,11 +8,12 @@ import {
} from '@ghostfolio/common/config';
import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config';
import {
AssetProfileIdentifier,
AdminData,
AdminJobs,
AdminMarketData,
AdminUserResponse,
AdminUsersResponse,
AssetProfileIdentifier,
DataProviderGhostfolioStatusResponse,
EnhancedSymbolProfile,
Filter
@ -142,6 +143,10 @@ export class AdminService {
return this.http.get<Platform[]>('/api/v1/platform');
}
public fetchUserById(id: string) {
return this.http.get<AdminUserResponse>(`/api/v1/admin/user/${id}`);
}
public fetchUsers({
skip,
take = DEFAULT_PAGE_SIZE
@ -157,12 +162,6 @@ export class AdminService {
return this.http.get<AdminUsersResponse>('/api/v1/admin/user', { params });
}
public fetchUserById(id: string) {
return this.http.get<
import('@ghostfolio/common/interfaces').AdminUserResponse
>(`/api/v1/admin/user/${id}`);
}
public gather7Days() {
return this.http.post<void>('/api/v1/admin/gather', {});
}

Loading…
Cancel
Save