RED-9580 - use new user stats endpoint for everything related to User Management

This commit is contained in:
Valentin Mihai 2024-12-04 15:47:30 +02:00
parent b225917a51
commit bfe409305c
7 changed files with 40 additions and 2 deletions

View File

@ -22,6 +22,8 @@ import { ConfigureCertificateDialogComponent } from '../dialogs/configure-digita
import { EditColorDialogComponent } from '../dialogs/edit-color-dialog/edit-color-dialog.component'; import { EditColorDialogComponent } from '../dialogs/edit-color-dialog/edit-color-dialog.component';
import { SmtpAuthDialogComponent } from '../dialogs/smtp-auth-dialog/smtp-auth-dialog.component'; import { SmtpAuthDialogComponent } from '../dialogs/smtp-auth-dialog/smtp-auth-dialog.component';
import { UploadDictionaryDialogComponent } from '../dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component'; import { UploadDictionaryDialogComponent } from '../dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component';
import { UserStatsService } from './user-stats.service';
import { result } from 'lodash-es';
type DialogType = type DialogType =
| 'confirm' | 'confirm'
@ -73,12 +75,16 @@ export class AdminDialogService extends DialogService<DialogType> {
private readonly _activeDossiersService: ActiveDossiersService, private readonly _activeDossiersService: ActiveDossiersService,
private readonly _loadingService: LoadingService, private readonly _loadingService: LoadingService,
private readonly _userService: UserService, private readonly _userService: UserService,
private readonly _userStatsService: UserStatsService,
private readonly _reportTemplateService: ReportTemplateService, private readonly _reportTemplateService: ReportTemplateService,
) { ) {
super(_dialog); super(_dialog);
} }
deleteUsers(userIds: string[], cb?: () => Promise<void> | void): void { async deleteUsers(userIds: string[], cb?: () => Promise<void> | void): Promise<void> {
// const result = await firstValueFrom(this._userStatsService.getFor(userIds));
// console.log('result: ', result);
const data: IConfirmationDialogData = { const data: IConfirmationDialogData = {
title: _('confirm-delete-users.title'), title: _('confirm-delete-users.title'),
question: _('confirm-delete-users.warning'), question: _('confirm-delete-users.warning'),

View File

@ -0,0 +1,10 @@
import { StatsService } from '@iqser/common-ui';
import { IUserStats, USER_ID, UserStats } from '@red/domain';
import { Injectable } from '@angular/core';
@Injectable({ providedIn: 'root' })
export class UserStatsService extends StatsService<UserStats, IUserStats> {
protected readonly _primaryKey = USER_ID;
protected readonly _entityClass = UserStats;
protected readonly _defaultModelPath = 'user-stats';
}

View File

@ -1,6 +1,6 @@
import { inject, Injectable } from '@angular/core'; import { inject, Injectable } from '@angular/core';
import { StatsService } from '@iqser/common-ui'; import { StatsService } from '@iqser/common-ui';
import { DashboardStats, DOSSIER_ID, DossierStats, IDossierStats } from '@red/domain'; import { DOSSIER_ID, DossierStats, IDossierStats } from '@red/domain';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
import { UserService } from '@users/user.service'; import { UserService } from '@users/user.service';
import { NGXLogger } from 'ngx-logger'; import { NGXLogger } from 'ngx-logger';

View File

@ -0,0 +1 @@
export const USER_ID = 'userId';

View File

@ -1,3 +1,6 @@
export * from './user.model'; export * from './user.model';
export * from './profile'; export * from './profile';
export * from './types'; export * from './types';
export * from './user-stats';
export * from './user-stats.model';
export * from './constants';

View File

@ -0,0 +1,13 @@
import { IUserStats } from './user-stats';
export class UserStats implements IUserStats {
readonly numberOfDossierMemberships: number;
readonly numberOfDossierOwnerships: number;
readonly numberOfAssignedFiles: number;
constructor(userStats: IUserStats) {
this.numberOfAssignedFiles = userStats.numberOfAssignedFiles;
this.numberOfDossierOwnerships = userStats.numberOfAssignedFiles;
this.numberOfAssignedFiles = userStats.numberOfAssignedFiles;
}
}

View File

@ -0,0 +1,5 @@
export interface IUserStats {
numberOfDossierMemberships: number;
numberOfDossierOwnerships: number;
numberOfAssignedFiles: number;
}