From 18ed62c1c986b33c661b015c0513e75f28ca7f45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Sun, 18 Apr 2021 01:53:09 +0300 Subject: [PATCH 1/2] Display existing attributes at csv import --- ...-attributes-csv-import-dialog.component.ts | 19 +++++++++++++++---- ...ile-attributes-listing-screen.component.ts | 2 +- .../admin/services/admin-dialog.service.ts | 9 +++++++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts index 64fa985b3..21420dfa7 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts @@ -3,7 +3,7 @@ import { AbstractControl, FormGroup, ValidatorFn, Validators } from '@angular/fo import { AppStateService } from '../../../../state/app-state.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import * as Papa from 'papaparse'; -import { FileAttributesControllerService } from '@redaction/red-ui-http'; +import { FileAttributeConfig, FileAttributesControllerService } from '@redaction/red-ui-http'; import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; import { Observable } from 'rxjs'; import { map, startWith } from 'rxjs/operators'; @@ -52,7 +52,7 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent private readonly _fileAttributesControllerService: FileAttributesControllerService, public dialogRef: MatDialogRef, protected readonly _injector: Injector, - @Inject(MAT_DIALOG_DATA) public data: { csv: File; ruleSetId: string } + @Inject(MAT_DIALOG_DATA) public data: { csv: File; ruleSetId: string; existingAttributes: FileAttributeConfig[] } ) { super(_injector); this.csvFile = data.csv; @@ -64,7 +64,7 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent encoding: ['UTF-8', Validators.required] }); - this._readFile(); + this._readFile(data.existingAttributes); } private _autocompleteStringValidator(): ValidatorFn { @@ -76,7 +76,7 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent }; } - private _readFile() { + private _readFile(existingAttributes: FileAttributeConfig[]) { const reader = new FileReader(); reader.addEventListener('load', async (event) => { const parsedCsv = event.target.result; @@ -144,6 +144,17 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent }; } + private _buildExistingAttribute(attribute: FileAttributeConfig) { + return { + csvColumn: attribute.csvColumnHeader, + name: attribute.label, + temporaryName: attribute.label, + type: FieldType.Text, // TODO + readonly: !attribute.editable, + display: attribute.visible + }; + } + public activateAll() { this.activeFields = [...this.allEntities]; } diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts index 44e4f3040..e98548987 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts @@ -75,7 +75,7 @@ export class FileAttributesListingScreenComponent extends BaseListingComponent { + this._dialogService.openImportFileAttributeCSVDialog(csvFile, this._appStateService.activeRuleSetId, this.attributes, async () => { await this._loadData(); }); } diff --git a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts index ff8e2888d..65a0f9139 100644 --- a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts @@ -124,10 +124,15 @@ export class AdminDialogService { return ref; } - public openImportFileAttributeCSVDialog(csv: File, ruleSetId: string, cb?: Function): MatDialogRef { + public openImportFileAttributeCSVDialog( + csv: File, + ruleSetId: string, + existingAttributes: FileAttributeConfig[], + cb?: Function + ): MatDialogRef { const ref = this._dialog.open(FileAttributesCsvImportDialogComponent, { ...largeDialogConfig, - data: { csv, ruleSetId } + data: { csv, ruleSetId, existingAttributes } }); ref.afterClosed().subscribe((result) => { From 97239187155e94d73524edf4bcfb32db9d637598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Thu, 22 Apr 2021 17:26:52 +0300 Subject: [PATCH 2/2] File attributes CSV import updates --- ...ttributes-csv-import-dialog.component.html | 12 +- ...ttributes-csv-import-dialog.component.scss | 8 +- ...-attributes-csv-import-dialog.component.ts | 121 +++++++--- ...ile-attributes-listing-screen.component.ts | 7 +- .../admin/services/admin-dialog.service.ts | 5 +- .../file-workload.component.html | 7 +- apps/red-ui/src/assets/i18n/en.json | 10 +- .../api/fileAttributesController.service.ts | 216 ++++++------------ .../model/fileAttributesBaseConfigRequest.ts | 16 -- libs/red-ui-http/src/lib/model/models.ts | 1 - 10 files changed, 187 insertions(+), 216 deletions(-) delete mode 100644 libs/red-ui-http/src/lib/model/fileAttributesBaseConfigRequest.ts diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.html b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.html index 2131fdde6..7fb559559 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.html +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.html @@ -10,7 +10,7 @@
-
+
{{ 'file-attributes-csv-import.key-column' | translate }} @@ -48,6 +48,12 @@ [placeholder]="'file-attributes-csv-import.encoding-placeholder' | translate" />
+
@@ -138,8 +144,8 @@
-
{{ 'file-attributes-csv-import.cancel' | translate }}
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss index 88d6fc0d2..f3114a403 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.scss @@ -30,14 +30,16 @@ .right > form { display: flex; - flex-direction: row; - justify-content: center; - align-items: center; + align-items: flex-end; padding-left: 16px; .red-input-group { margin: 0 8px; } + + redaction-circle-button { + margin-left: 8px; + } } } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts index 21420dfa7..28c7f6a75 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts @@ -3,11 +3,13 @@ import { AbstractControl, FormGroup, ValidatorFn, Validators } from '@angular/fo import { AppStateService } from '../../../../state/app-state.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import * as Papa from 'papaparse'; -import { FileAttributeConfig, FileAttributesControllerService } from '@redaction/red-ui-http'; +import { FileAttributesConfig, FileAttributesControllerService } from '@redaction/red-ui-http'; import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; import { Observable } from 'rxjs'; import { map, startWith } from 'rxjs/operators'; import { BaseListingComponent } from '../../../shared/base/base-listing.component'; +import { NotificationService, NotificationType } from '../../../../services/notification.service'; +import { TranslateService } from '@ngx-translate/core'; enum FieldType { Text = 'Text', @@ -16,6 +18,7 @@ enum FieldType { } export interface Field { + id?: string; csvColumn: string; name: string; type: FieldType; @@ -44,15 +47,18 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent public filteredKeyOptions: Observable; public keepPreview = false; public columnSample = []; + public initialParseConfig: { delimiter?: string; encoding?: string } = {}; @ViewChild(CdkVirtualScrollViewport, { static: false }) cdkVirtualScrollViewport: CdkVirtualScrollViewport; constructor( private readonly _appStateService: AppStateService, private readonly _fileAttributesControllerService: FileAttributesControllerService, + private readonly _translateService: TranslateService, + private readonly _notificationService: NotificationService, public dialogRef: MatDialogRef, protected readonly _injector: Injector, - @Inject(MAT_DIALOG_DATA) public data: { csv: File; ruleSetId: string; existingAttributes: FileAttributeConfig[] } + @Inject(MAT_DIALOG_DATA) public data: { csv: File; ruleSetId: string; existingConfiguration: FileAttributesConfig } ) { super(_injector); this.csvFile = data.csv; @@ -64,7 +70,7 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent encoding: ['UTF-8', Validators.required] }); - this._readFile(data.existingAttributes); + this.readFile(); } private _autocompleteStringValidator(): ValidatorFn { @@ -76,7 +82,7 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent }; } - private _readFile(existingAttributes: FileAttributeConfig[]) { + public readFile() { const reader = new FileReader(); reader.addEventListener('load', async (event) => { const parsedCsv = event.target.result; @@ -84,24 +90,54 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent header: true, delimiter: this.baseConfigForm.get('delimiter').value }); - if (!this.baseConfigForm.get('delimiter').value) { - this.baseConfigForm.patchValue({ delimiter: this.parseResult.meta.delimiter }); + this.baseConfigForm.patchValue({ delimiter: this.parseResult.meta.delimiter }); + + // Filter duplicate columns + if (this.parseResult?.data?.length) { + this.parseResult.meta.fields = Object.keys(this.parseResult.data[0]); } + this.allEntities = this.parseResult.meta.fields.map((field) => this._buildAttribute(field)); this.displayedEntities = [...this.allEntities]; + this.activeFields = []; + + for (const entity of this.allEntities) { + const existing = this.data.existingConfiguration.fileAttributeConfigs.find((a) => a.csvColumnHeader === entity.csvColumn); + if (!!existing) { + entity.id = existing.id; + entity.name = existing.label; + entity.temporaryName = existing.label; + // TODO: entity.type + entity.display = existing.visible; + entity.readonly = !existing.editable; + this.toggleFieldActive(entity); + } + } this.filteredKeyOptions = this.baseConfigForm.get('filenameMappingColumnHeaderName').valueChanges.pipe( - startWith(''), + startWith(this.baseConfigForm.get('filenameMappingColumnHeaderName').value as string), map((value: string) => this.allEntities.filter((field) => field.csvColumn.toLowerCase().indexOf(value.toLowerCase()) !== -1).map((field) => field.csvColumn) ) ); + + if ( + this.data.existingConfiguration && + this.allEntities.find((entity) => entity.csvColumn === this.data.existingConfiguration.filenameMappingColumnHeaderName) + ) { + this.baseConfigForm.patchValue({ filenameMappingColumnHeaderName: this.data.existingConfiguration.filenameMappingColumnHeaderName }); + } + + this.initialParseConfig = { + delimiter: this.baseConfigForm.get('delimiter').value, + encoding: this.baseConfigForm.get('encoding').value + }; }); reader.readAsText(this.csvFile, this.baseConfigForm.get('encoding').value); } public getSample(csvColumn: string) { - return this.parseResult?.data ? this.parseResult?.data[0][csvColumn] : ''; + return this.parseResult?.data?.length ? this.parseResult?.data[0][csvColumn] : ''; } public getEntries(csvColumn: string) { @@ -144,17 +180,6 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent }; } - private _buildExistingAttribute(attribute: FileAttributeConfig) { - return { - csvColumn: attribute.csvColumnHeader, - name: attribute.label, - temporaryName: attribute.label, - type: FieldType.Text, // TODO - readonly: !attribute.editable, - display: attribute.visible - }; - } - public activateAll() { this.activeFields = [...this.allEntities]; } @@ -164,22 +189,41 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent } public async save() { - await this._fileAttributesControllerService - .addOrUpdateFileAttributesConfig( - { - ...this.baseConfigForm.getRawValue(), - fileAttributeConfigs: this.activeFields.map((field) => { - return { - csvColumnHeader: field.csvColumn, - editable: !field.readonly, - label: field.name, - visible: field.display - }; - }) - }, - this.ruleSetId - ) - .toPromise(); + try { + await this._fileAttributesControllerService + .setFileAttributesConfig( + { + ...this.baseConfigForm.getRawValue(), + fileAttributeConfigs: [ + ...this.data.existingConfiguration.fileAttributeConfigs.filter( + (a) => !this.allEntities.find((entity) => entity.csvColumn === a.csvColumnHeader) + ), + ...this.activeFields.map((field) => { + return { + id: field.id, + csvColumnHeader: field.csvColumn, + editable: !field.readonly, + label: field.name, + visible: field.display + }; + }) + ] + }, + this.ruleSetId + ) + .toPromise(); + this._notificationService.showToastNotification( + this._translateService.instant('file-attributes-csv-import.save.success', { count: this.activeFields.length }), + null, + NotificationType.SUCCESS + ); + } catch (e) { + this._notificationService.showToastNotification( + this._translateService.instant('file-attributes-csv-import.save.error'), + null, + NotificationType.ERROR + ); + } this.dialogRef.close(true); } @@ -198,4 +242,11 @@ export class FileAttributesCsvImportDialogComponent extends BaseListingComponent } }, 0); } + + public get changedParseConfig(): boolean { + return ( + this.initialParseConfig.delimiter !== this.baseConfigForm.get('delimiter').value || + this.initialParseConfig.encoding !== this.baseConfigForm.get('encoding').value + ); + } } diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts index e98548987..49faa6c4a 100644 --- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts @@ -1,6 +1,6 @@ import { Component, ElementRef, Injector, OnInit, ViewChild } from '@angular/core'; import { PermissionsService } from '../../../../services/permissions.service'; -import { FileAttributeConfig, FileAttributesControllerService } from '@redaction/red-ui-http'; +import { FileAttributeConfig, FileAttributesConfig, FileAttributesControllerService } from '@redaction/red-ui-http'; import { AppStateService } from '../../../../state/app-state.service'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; @@ -19,6 +19,8 @@ export class FileAttributesListingScreenComponent extends BaseListingComponent { + this._dialogService.openImportFileAttributeCSVDialog(csvFile, this._appStateService.activeRuleSetId, this._existingConfiguration, async () => { await this._loadData(); }); } diff --git a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts index 65a0f9139..d6ea8d86d 100644 --- a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts @@ -4,6 +4,7 @@ import { Colors, DictionaryControllerService, FileAttributeConfig, + FileAttributesConfig, FileManagementControllerService, ManualRedactionControllerService, RuleSetControllerService, @@ -127,12 +128,12 @@ export class AdminDialogService { public openImportFileAttributeCSVDialog( csv: File, ruleSetId: string, - existingAttributes: FileAttributeConfig[], + existingConfiguration: FileAttributesConfig, cb?: Function ): MatDialogRef { const ref = this._dialog.open(FileAttributesCsvImportDialogComponent, { ...largeDialogConfig, - data: { csv, ruleSetId, existingAttributes } + data: { csv, ruleSetId, existingConfiguration } }); ref.afterClosed().subscribe((result) => { diff --git a/apps/red-ui/src/app/modules/projects/components/file-workload/file-workload.component.html b/apps/red-ui/src/app/modules/projects/components/file-workload/file-workload.component.html index fab9a8319..1a2ee8e7c 100644 --- a/apps/red-ui/src/app/modules/projects/components/file-workload/file-workload.component.html +++ b/apps/red-ui/src/app/modules/projects/components/file-workload/file-workload.component.html @@ -1,6 +1,11 @@
-
SELECT
+
; - public addOrUpdateFileAttributesBaseConfig( - body: FileAttributesBaseConfigRequest, - ruleSetId: string, - observe?: 'response', - reportProgress?: boolean - ): Observable>; - public addOrUpdateFileAttributesBaseConfig( - body: FileAttributesBaseConfigRequest, - ruleSetId: string, - observe?: 'events', - reportProgress?: boolean - ): Observable>; - public addOrUpdateFileAttributesBaseConfig( - body: FileAttributesBaseConfigRequest, - ruleSetId: string, - observe: any = 'body', - reportProgress: boolean = false - ): Observable { - if (body === null || body === undefined) { - throw new Error('Required parameter body was null or undefined when calling addOrUpdateFileAttributesBaseConfig.'); - } - - if (ruleSetId === null || ruleSetId === undefined) { - throw new Error('Required parameter ruleSetId was null or undefined when calling addOrUpdateFileAttributesBaseConfig.'); - } - - let headers = this.defaultHeaders; - - // authentication (RED-OAUTH) required - if (this.configuration.accessToken) { - const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken; - headers = headers.set('Authorization', 'Bearer ' + accessToken); - } - - // to determine the Accept header - const httpHeaderAccepts: string[] = ['application/json']; - const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); - if (httpHeaderAcceptSelected !== undefined) { - headers = headers.set('Accept', httpHeaderAcceptSelected); - } - - // to determine the Content-Type header - const consumes: string[] = ['application/json']; - const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); - if (httpContentTypeSelected !== undefined) { - headers = headers.set('Content-Type', httpContentTypeSelected); - } - - return this.httpClient.request( - 'post', - `${this.basePath}/fileAttributes/config/baseConfig/${encodeURIComponent(String(ruleSetId))}`, - { - body: body, - withCredentials: this.configuration.withCredentials, - headers: headers, - observe: observe, - reportProgress: reportProgress - } - ); - } - - /** - * Adds or updates file attributes base configuration and a list of file attributes, - * None - * @param body fileAttributesConfig - * @param ruleSetId ruleSetId - * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. - * @param reportProgress flag to report request and response progress. - */ - public addOrUpdateFileAttributesConfig( - body: FileAttributesConfig, - ruleSetId: string, - observe?: 'body', - reportProgress?: boolean - ): Observable; - public addOrUpdateFileAttributesConfig( - body: FileAttributesConfig, - ruleSetId: string, - observe?: 'response', - reportProgress?: boolean - ): Observable>; - public addOrUpdateFileAttributesConfig( - body: FileAttributesConfig, - ruleSetId: string, - observe?: 'events', - reportProgress?: boolean - ): Observable>; - public addOrUpdateFileAttributesConfig( - body: FileAttributesConfig, - ruleSetId: string, - observe: any = 'body', - reportProgress: boolean = false - ): Observable { - if (body === null || body === undefined) { - throw new Error('Required parameter body was null or undefined when calling addOrUpdateFileAttributesConfig.'); - } - - if (ruleSetId === null || ruleSetId === undefined) { - throw new Error('Required parameter ruleSetId was null or undefined when calling addOrUpdateFileAttributesConfig.'); - } - - let headers = this.defaultHeaders; - - // authentication (RED-OAUTH) required - if (this.configuration.accessToken) { - const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken; - headers = headers.set('Authorization', 'Bearer ' + accessToken); - } - - // to determine the Accept header - const httpHeaderAccepts: string[] = ['application/json']; - const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); - if (httpHeaderAcceptSelected !== undefined) { - headers = headers.set('Accept', httpHeaderAcceptSelected); - } - - // to determine the Content-Type header - const consumes: string[] = ['application/json']; - const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); - if (httpContentTypeSelected !== undefined) { - headers = headers.set('Content-Type', httpContentTypeSelected); - } - - return this.httpClient.request( - 'put', - `${this.basePath}/fileAttributes/config/baseConfig/${encodeURIComponent(String(ruleSetId))}`, - { - body: body, - withCredentials: this.configuration.withCredentials, - headers: headers, - observe: observe, - reportProgress: reportProgress - } - ); - } - /** * Delete a specific file attribute. * None @@ -411,6 +260,71 @@ export class FileAttributesControllerService { ); } + /** + * Set file attributes base configuration and a list of file attributes, + * None + * @param body fileAttributesConfig + * @param ruleSetId ruleSetId + * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. + * @param reportProgress flag to report request and response progress. + */ + public setFileAttributesConfig(body: FileAttributesConfig, ruleSetId: string, observe?: 'body', reportProgress?: boolean): Observable; + public setFileAttributesConfig( + body: FileAttributesConfig, + ruleSetId: string, + observe?: 'response', + reportProgress?: boolean + ): Observable>; + public setFileAttributesConfig( + body: FileAttributesConfig, + ruleSetId: string, + observe?: 'events', + reportProgress?: boolean + ): Observable>; + public setFileAttributesConfig(body: FileAttributesConfig, ruleSetId: string, observe: any = 'body', reportProgress: boolean = false): Observable { + if (body === null || body === undefined) { + throw new Error('Required parameter body was null or undefined when calling setFileAttributesConfig.'); + } + + if (ruleSetId === null || ruleSetId === undefined) { + throw new Error('Required parameter ruleSetId was null or undefined when calling setFileAttributesConfig.'); + } + + let headers = this.defaultHeaders; + + // authentication (RED-OAUTH) required + if (this.configuration.accessToken) { + const accessToken = typeof this.configuration.accessToken === 'function' ? this.configuration.accessToken() : this.configuration.accessToken; + headers = headers.set('Authorization', 'Bearer ' + accessToken); + } + + // to determine the Accept header + const httpHeaderAccepts: string[] = ['application/json']; + const httpHeaderAcceptSelected: string | undefined = this.configuration.selectHeaderAccept(httpHeaderAccepts); + if (httpHeaderAcceptSelected !== undefined) { + headers = headers.set('Accept', httpHeaderAcceptSelected); + } + + // to determine the Content-Type header + const consumes: string[] = ['application/json']; + const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes); + if (httpContentTypeSelected !== undefined) { + headers = headers.set('Content-Type', httpContentTypeSelected); + } + + return this.httpClient.request( + 'put', + `${this.basePath}/fileAttributes/config/baseConfig/${encodeURIComponent(String(ruleSetId))}`, + { + body: body, + withCredentials: this.configuration.withCredentials, + headers: headers, + observe: observe, + reportProgress: reportProgress + } + ); + } + /** * Add or update a file attribute that can be used at importing csv. * None diff --git a/libs/red-ui-http/src/lib/model/fileAttributesBaseConfigRequest.ts b/libs/red-ui-http/src/lib/model/fileAttributesBaseConfigRequest.ts deleted file mode 100644 index b29f212cd..000000000 --- a/libs/red-ui-http/src/lib/model/fileAttributesBaseConfigRequest.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * API Documentation for Redaction Gateway - * Description for redaction - * - * OpenAPI spec version: 1.0 - * - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - -export interface FileAttributesBaseConfigRequest { - delimiter?: string; - filenameMappingColumnHeaderName?: string; -} diff --git a/libs/red-ui-http/src/lib/model/models.ts b/libs/red-ui-http/src/lib/model/models.ts index d54a6f14c..4bed78bc7 100644 --- a/libs/red-ui-http/src/lib/model/models.ts +++ b/libs/red-ui-http/src/lib/model/models.ts @@ -64,7 +64,6 @@ export * from './fileAttributesConfig'; export * from './importCsvRequest'; export * from './importCsvResponse'; export * from './fileAttributeConfig'; -export * from './fileAttributesBaseConfigRequest'; export * from './removeDownloadRequest'; export * from './sMTPConfigurationModel'; export * from './userSearchRequest';