From 6106c2dfe412b2bc14c0f7189aca32ea2a5ae584 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Thu, 14 Oct 2021 22:38:34 +0300 Subject: [PATCH] add watermark service --- .../src/app/modules/admin/admin.module.ts | 11 +++++++- .../watermark/watermark-screen.component.ts | 11 ++++---- .../admin/services/watermark.service.ts | 25 +++++++++++++++++++ libs/red-ui-http/src/lib/api.module.ts | 3 +-- 4 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 apps/red-ui/src/app/modules/admin/services/watermark.service.ts diff --git a/apps/red-ui/src/app/modules/admin/admin.module.ts b/apps/red-ui/src/app/modules/admin/admin.module.ts index b03053310..932ecd4fa 100644 --- a/apps/red-ui/src/app/modules/admin/admin.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin.module.ts @@ -45,6 +45,7 @@ import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen. import { LicenseReportService } from './services/licence-report.service'; import { RulesService } from './services/rules.service'; import { SmtpConfigService } from './services/smtp-config.service'; +import { WatermarkService } from './services/watermark.service'; const dialogs = [ AddEditDossierTemplateDialogComponent, @@ -95,7 +96,15 @@ const components = [ @NgModule({ declarations: [...components], - providers: [AdminDialogService, AuditService, DigitalSignatureService, LicenseReportService, RulesService, SmtpConfigService], + providers: [ + AdminDialogService, + AuditService, + DigitalSignatureService, + LicenseReportService, + RulesService, + SmtpConfigService, + WatermarkService, + ], imports: [CommonModule, SharedModule, AdminRoutingModule, NgxChartsModule, ColorPickerModule, MonacoEditorModule], }) export class AdminModule {} diff --git a/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.ts index 33d90a62e..796c72289 100644 --- a/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/watermark/watermark-screen.component.ts @@ -5,12 +5,13 @@ import { environment } from '@environments/environment'; import { HttpClient } from '@angular/common/http'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Debounce, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui'; -import { WatermarkControllerService, WatermarkModel } from '@redaction/red-ui-http'; +import { WatermarkModel } from '@redaction/red-ui-http'; import { ActivatedRoute } from '@angular/router'; import { BASE_HREF } from '../../../../tokens'; import { stampPDFPage } from '@utils/page-stamper'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; +import { WatermarkService } from '../../services/watermark.service'; export const DEFAULT_WATERMARK: WatermarkModel = { text: null, @@ -37,7 +38,7 @@ export class WatermarkScreenComponent implements OnInit { constructor( readonly permissionsService: PermissionsService, @Inject(BASE_HREF) private readonly _baseHref: string, - private readonly _watermarkControllerService: WatermarkControllerService, + private readonly _watermarkService: WatermarkService, private readonly _toaster: Toaster, private readonly _http: HttpClient, private readonly _changeDetectorRef: ChangeDetectorRef, @@ -79,8 +80,8 @@ export class WatermarkScreenComponent implements OnInit { const dossierTemplateId = this._dossierTemplatesService.activeDossierTemplateId; const observable = watermark.text - ? this._watermarkControllerService.saveWatermark(watermark, dossierTemplateId) - : this._watermarkControllerService.deleteWatermark(dossierTemplateId); + ? this._watermarkService.saveWatermark(watermark, dossierTemplateId) + : this._watermarkService.deleteWatermark(dossierTemplateId); observable.toPromise().then( () => { @@ -108,7 +109,7 @@ export class WatermarkScreenComponent implements OnInit { } private _loadWatermark() { - this._watermarkControllerService.getWatermark(this._dossierTemplatesService.activeDossierTemplateId).subscribe( + this._watermarkService.getWatermark(this._dossierTemplatesService.activeDossierTemplateId).subscribe( watermark => { this._watermark = watermark; this.configForm.setValue({ ...this._watermark }); diff --git a/apps/red-ui/src/app/modules/admin/services/watermark.service.ts b/apps/red-ui/src/app/modules/admin/services/watermark.service.ts new file mode 100644 index 000000000..560835922 --- /dev/null +++ b/apps/red-ui/src/app/modules/admin/services/watermark.service.ts @@ -0,0 +1,25 @@ +import { Injectable, Injector } from '@angular/core'; +import { GenericService, RequiredParam, Validate } from '@iqser/common-ui'; +import { WatermarkModel } from '@redaction/red-ui-http'; + +@Injectable() +export class WatermarkService extends GenericService { + constructor(protected readonly _injector: Injector) { + super(_injector, 'watermark'); + } + + @Validate() + saveWatermark(@RequiredParam() body: WatermarkModel, @RequiredParam() dossierTemplateId: string) { + return this._post(body, `${this._defaultModelPath}/${dossierTemplateId}`); + } + + @Validate() + deleteWatermark(@RequiredParam() dossierTemplateId: string) { + return super.delete({}, `${this._defaultModelPath}/${dossierTemplateId}`); + } + + @Validate() + getWatermark(@RequiredParam() dossierTemplateId: string) { + return this._getOne([dossierTemplateId]); + } +} diff --git a/libs/red-ui-http/src/lib/api.module.ts b/libs/red-ui-http/src/lib/api.module.ts index a3fb4c26b..5304fad3a 100644 --- a/libs/red-ui-http/src/lib/api.module.ts +++ b/libs/red-ui-http/src/lib/api.module.ts @@ -1,7 +1,6 @@ import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'; import { Configuration } from './configuration'; import { HttpClient } from '@angular/common/http'; -import { WatermarkControllerService } from './api/watermarkController.service'; import { SearchControllerService } from './api/searchController.service'; import { NotificationControllerService } from './api/notificationController.service'; @@ -9,7 +8,7 @@ import { NotificationControllerService } from './api/notificationController.serv imports: [], declarations: [], exports: [], - providers: [WatermarkControllerService, SearchControllerService, NotificationControllerService], + providers: [SearchControllerService, NotificationControllerService], }) export class ApiModule { constructor(@Optional() @SkipSelf() parentModule: ApiModule, @Optional() http: HttpClient) {