From 824794a4cce108f49de0ee96efcc2724f25da621 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Wed, 6 Oct 2021 11:17:47 +0300 Subject: [PATCH] update user preference service --- .../app/modules/dossier/dossiers.module.ts | 2 -- .../file-preview-screen.component.ts | 3 +-- .../app/services/user-preference.service.ts | 24 +++++++++++-------- libs/red-ui-http/src/lib/api.module.ts | 5 ++-- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/apps/red-ui/src/app/modules/dossier/dossiers.module.ts b/apps/red-ui/src/app/modules/dossier/dossiers.module.ts index 6a0653da1..b6fd63572 100644 --- a/apps/red-ui/src/app/modules/dossier/dossiers.module.ts +++ b/apps/red-ui/src/app/modules/dossier/dossiers.module.ts @@ -26,7 +26,6 @@ import { AnnotationProcessingService } from './services/annotation-processing.se import { EditDossierDialogComponent } from './dialogs/edit-dossier-dialog/edit-dossier-dialog.component'; import { EditDossierGeneralInfoComponent } from './dialogs/edit-dossier-dialog/general-info/edit-dossier-general-info.component'; import { EditDossierDownloadPackageComponent } from './dialogs/edit-dossier-dialog/download-package/edit-dossier-download-package.component'; -import { UserPreferenceControllerService } from '@redaction/red-ui-http'; import { EditDossierDictionaryComponent } from './dialogs/edit-dossier-dialog/dictionary/edit-dossier-dictionary.component'; import { EditDossierTeamMembersComponent } from './dialogs/edit-dossier-dialog/team-members/edit-dossier-team-members.component'; import { TeamMembersManagerComponent } from './components/team-members-manager/team-members-manager.component'; @@ -85,7 +84,6 @@ const services = [ PdfViewerDataService, AnnotationDrawService, AnnotationProcessingService, - UserPreferenceControllerService, ]; @NgModule({ diff --git a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts index b7f8b6f15..668d0829a 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/file-preview-screen/file-preview-screen.component.ts @@ -28,7 +28,7 @@ import { PermissionsService } from '@services/permissions.service'; import { timer } from 'rxjs'; import { UserPreferenceService } from '@services/user-preference.service'; import { UserService } from '@services/user.service'; -import { FileManagementControllerService, FileStatus, List, UserPreferenceControllerService } from '@redaction/red-ui-http'; +import { FileManagementControllerService, FileStatus, List } from '@redaction/red-ui-http'; import { PdfViewerDataService } from '../../services/pdf-viewer-data.service'; import { download } from '@utils/file-download-utils'; import { ViewMode } from '@models/file/view-mode'; @@ -88,7 +88,6 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni readonly permissionsService: PermissionsService, readonly userPreferenceService: UserPreferenceService, readonly userService: UserService, - private readonly _userPreferenceControllerService: UserPreferenceControllerService, private readonly _changeDetectorRef: ChangeDetectorRef, private readonly _activatedRoute: ActivatedRoute, private readonly _dialogService: DossiersDialogService, diff --git a/apps/red-ui/src/app/services/user-preference.service.ts b/apps/red-ui/src/app/services/user-preference.service.ts index 4dbeda9ea..4c918615f 100644 --- a/apps/red-ui/src/app/services/user-preference.service.ts +++ b/apps/red-ui/src/app/services/user-preference.service.ts @@ -1,15 +1,15 @@ -import { Injectable } from '@angular/core'; -import { UserPreferenceControllerService } from '@redaction/red-ui-http'; +import { Injectable, Injector } from '@angular/core'; +import { List } from '@redaction/red-ui-http'; +import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; -interface UserAttributes { - [p: string]: string[]; -} +type UserAttributes = Record; @Injectable({ providedIn: 'root', }) -export class UserPreferenceService { - constructor(private readonly _userPreferenceControllerService: UserPreferenceControllerService) { +export class UserPreferenceService extends GenericService { + constructor(protected readonly _injector: Injector) { + super(_injector, 'attributes'); this.reload(); } @@ -35,7 +35,7 @@ export class UserPreferenceService { async saveLastOpenedFileForDossier(dossierId: string, fileId: string): Promise { const key = `Dossier-Recent-${dossierId}`; this.userAttributes[key] = [fileId]; - await this._userPreferenceControllerService.savePreferences([fileId], key).toPromise(); + await this.savePreferences([fileId], key).toPromise(); } toggleDevFeatures(): void { @@ -44,11 +44,15 @@ export class UserPreferenceService { } reload(): void { - this._userPreferenceControllerService - .getAllUserAttributes() + this.getAll() .toPromise() .then(attributes => { this._userAttributes = attributes ?? {}; }); } + + @Validate() + savePreferences(@RequiredParam() body: List, @RequiredParam() key: string) { + return this._put(body, `${this._defaultModelPath}/${key}`); + } } diff --git a/libs/red-ui-http/src/lib/api.module.ts b/libs/red-ui-http/src/lib/api.module.ts index f7a22a5bb..f117465ec 100644 --- a/libs/red-ui-http/src/lib/api.module.ts +++ b/libs/red-ui-http/src/lib/api.module.ts @@ -20,7 +20,6 @@ import { RulesControllerService } from './api/rulesController.service'; import { SmtpConfigurationControllerService } from './api/smtpConfigurationController.service'; import { UploadControllerService } from './api/uploadController.service'; import { UserControllerService } from './api/userController.service'; -import { UserPreferenceControllerService } from './api/userPreferenceController.service'; import { VersionsControllerService } from './api/versionsController.service'; import { ViewedPagesControllerService } from './api/viewedPagesController.service'; import { WatermarkControllerService } from './api/watermarkController.service'; @@ -51,7 +50,6 @@ import { StatusReportControllerService } from './api/statusReportController.serv SmtpConfigurationControllerService, UploadControllerService, UserControllerService, - UserPreferenceControllerService, VersionsControllerService, ViewedPagesControllerService, WatermarkControllerService, @@ -67,7 +65,8 @@ export class ApiModule { } if (!http) { throw new Error( - 'You need to import the HttpClientModule in your AppModule! \n' + 'See also https://github.com/angular/angular/issues/20575', + 'You need to import the HttpClientModule in your AppModule! \n' + + 'See also https://github.com/angular/angular/issues/20575', ); } }