From 3466e8a4ed35f555b653a8220d45d5fe0cfcd606 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Thu, 21 Oct 2021 16:26:45 +0300 Subject: [PATCH] move dossier attributes to red-domain --- .../app/models/dossier-attributes.model.ts | 3 -- ...edit-dossier-attribute-dialog.component.ts | 3 +- ...ier-attributes-listing-screen.component.ts | 3 +- .../edit-dossier-attributes.component.ts | 3 +- .../dossier-details-stats.component.ts | 3 +- .../dossier-details.component.ts | 3 +- .../dossier-overview-screen.component.ts | 3 +- .../dossier-attributes.service.ts | 23 ++++++++------- libs/red-domain/src/index.ts | 1 + .../dossier-attribute-config.interface.ts | 10 +++++++ .../dossier-attribute-config.model.ts | 11 ++++---- .../dossier-attribute.interface.ts | 5 ++++ .../src/lib/dossier-attributes/index.ts | 4 +++ .../src/lib/dossier-attributes/types.ts | 12 ++++++++ .../src/lib/model/dossierAttribute.ts | 17 ----------- .../src/lib/model/dossierAttributeConfig.ts | 28 ------------------- .../src/lib/model/dossierAttributes.ts | 16 ----------- .../src/lib/model/dossierAttributesConfig.ts | 17 ----------- libs/red-ui-http/src/lib/model/models.ts | 6 ++-- 19 files changed, 58 insertions(+), 113 deletions(-) delete mode 100644 apps/red-ui/src/app/models/dossier-attributes.model.ts create mode 100644 libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.interface.ts rename apps/red-ui/src/app/state/model/dossier-attribute-config.ts => libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.model.ts (67%) create mode 100644 libs/red-domain/src/lib/dossier-attributes/dossier-attribute.interface.ts create mode 100644 libs/red-domain/src/lib/dossier-attributes/index.ts create mode 100644 libs/red-domain/src/lib/dossier-attributes/types.ts delete mode 100644 libs/red-ui-http/src/lib/model/dossierAttribute.ts delete mode 100644 libs/red-ui-http/src/lib/model/dossierAttributeConfig.ts delete mode 100644 libs/red-ui-http/src/lib/model/dossierAttributes.ts delete mode 100644 libs/red-ui-http/src/lib/model/dossierAttributesConfig.ts diff --git a/apps/red-ui/src/app/models/dossier-attributes.model.ts b/apps/red-ui/src/app/models/dossier-attributes.model.ts deleted file mode 100644 index cf99a25cc..000000000 --- a/apps/red-ui/src/app/models/dossier-attributes.model.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { IDossierAttributeConfig } from '@redaction/red-ui-http'; - -export type DossierAttributeWithValue = IDossierAttributeConfig & { value: any }; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts index 258c0050e..710a846b6 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts @@ -1,12 +1,13 @@ import { Component, Inject, OnDestroy } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { DossierAttributeConfigTypes, FileAttributeConfigTypes, IDossierAttributeConfig } from '@redaction/red-ui-http'; +import { DossierAttributeConfigTypes, FileAttributeConfigTypes } from '@redaction/red-ui-http'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { AutoUnsubscribe, LoadingService, Toaster } from '@iqser/common-ui'; import { HttpErrorResponse } from '@angular/common/http'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; +import { IDossierAttributeConfig } from '@red/domain'; @Component({ templateUrl: './add-edit-dossier-attribute-dialog.component.html', diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts index 1d94c1588..c9d02247d 100644 --- a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts @@ -8,7 +8,6 @@ import { LoadingService, TableColumnConfig, } from '@iqser/common-ui'; -import { IDossierAttributeConfig } from '@redaction/red-ui-http'; import { AppStateService } from '@state/app-state.service'; import { ActivatedRoute } from '@angular/router'; import { AdminDialogService } from '../../services/admin-dialog.service'; @@ -16,7 +15,7 @@ import { DossierAttributesService } from '@shared/services/controller-wrappers/d import { dossierAttributeTypesTranslations } from '../../translations/dossier-attribute-types-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { UserService } from '@services/user.service'; -import { DossierAttributeConfig } from '@state/model/dossier-attribute-config'; +import { DossierAttributeConfig, IDossierAttributeConfig } from '@red/domain'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; @Component({ diff --git a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.ts b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.ts index 9ccf55f34..e46cb671f 100644 --- a/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.ts +++ b/apps/red-ui/src/app/modules/dossier/dialogs/edit-dossier-dialog/attributes/edit-dossier-attributes.component.ts @@ -1,11 +1,10 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core'; import { EditDossierSectionInterface } from '../edit-dossier-section.interface'; -import { Dossier } from '@red/domain'; +import { Dossier, DossierAttributeWithValue } from '@red/domain'; import { PermissionsService } from '@services/permissions.service'; import { CircleButtonTypes, IconButtonTypes, LoadingService } from '@iqser/common-ui'; import { FormBuilder, FormGroup } from '@angular/forms'; import * as moment from 'moment'; -import { DossierAttributeWithValue } from '@models/dossier-attributes.model'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; @Component({ diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.ts index f2ba8f6d7..a382b7057 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details-stats/dossier-details-stats.component.ts @@ -1,7 +1,6 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { DossierAttributeWithValue } from '@models/dossier-attributes.model'; import { AppStateService } from '@state/app-state.service'; -import { Dossier } from '@red/domain'; +import { Dossier, DossierAttributeWithValue } from '@red/domain'; import { DossiersDialogService } from '../../../../services/dossiers-dialog.service'; import { DossiersService } from '@services/entity-services/dossiers.service'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details/dossier-details.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details/dossier-details.component.ts index f54b8226e..e0cd90906 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details/dossier-details.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/components/dossier-details/dossier-details.component.ts @@ -5,12 +5,11 @@ import { DoughnutChartConfig } from '@shared/components/simple-doughnut-chart/si import { TranslateChartService } from '@services/translate-chart.service'; import { UserService } from '@services/user.service'; import { FilterService, Toaster } from '@iqser/common-ui'; -import { DossierAttributeWithValue } from '@models/dossier-attributes.model'; import { fileStatusTranslations } from '../../../../translations/file-status-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { User } from '@models/user'; import { DossiersService } from '@services/entity-services/dossiers.service'; -import { IDossierRequest } from '@red/domain'; +import { DossierAttributeWithValue, IDossierRequest } from '@red/domain'; @Component({ selector: 'redaction-dossier-details', diff --git a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts index 04dee669f..d8ea730a8 100644 --- a/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts +++ b/apps/red-ui/src/app/modules/dossier/screens/dossier-overview/screen/dossier-overview-screen.component.ts @@ -42,11 +42,10 @@ import { WorkflowConfig, } from '@iqser/common-ui'; import { DossierAttributesService } from '@shared/services/controller-wrappers/dossier-attributes.service'; -import { DossierAttributeWithValue } from '@models/dossier-attributes.model'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { PermissionsService } from '@services/permissions.service'; import { RouterHistoryService } from '@services/router-history.service'; -import { Dossier } from '@red/domain'; +import { Dossier, DossierAttributeWithValue } from '@red/domain'; import { Router } from '@angular/router'; import { FileAttributesService } from '@services/entity-services/file-attributes.service'; import { ConfigService as AppConfigService } from '@services/config.service'; diff --git a/apps/red-ui/src/app/modules/shared/services/controller-wrappers/dossier-attributes.service.ts b/apps/red-ui/src/app/modules/shared/services/controller-wrappers/dossier-attributes.service.ts index c3d4ff622..f0ac5009a 100644 --- a/apps/red-ui/src/app/modules/shared/services/controller-wrappers/dossier-attributes.service.ts +++ b/apps/red-ui/src/app/modules/shared/services/controller-wrappers/dossier-attributes.service.ts @@ -1,9 +1,6 @@ import { Injectable, Injector } from '@angular/core'; -import { DossierAttribute, DossierAttributes, DossierAttributesConfig, IDossierAttributeConfig } from '@redaction/red-ui-http'; -import { Dossier } from '@red/domain'; -import { DossierAttributeWithValue } from '@models/dossier-attributes.model'; +import { Dossier, DossierAttributeConfig, DossierAttributeWithValue, IDossierAttribute, IDossierAttributeConfig } from '@red/domain'; import { Observable } from 'rxjs'; -import { DossierAttributeConfig } from '@state/model/dossier-attribute-config'; import { DossierTemplatesService } from '@services/entity-services/dossier-templates.service'; import { EntitiesService, List, mapEach, RequiredParam, Validate } from '@iqser/common-ui'; import { map, tap } from 'rxjs/operators'; @@ -27,11 +24,11 @@ export class DossierAttributesService extends EntitiesService, - ): Observable { - return this._post({ dossierAttributeList }, `${this._defaultModelPath}/set/${dossier.id}`); + setAttributes(@RequiredParam() dossier: Dossier, @RequiredParam() dossierAttributeList: List) { + return this._post<{ dossierAttributeList?: List }>( + { dossierAttributeList }, + `${this._defaultModelPath}/set/${dossier.id}`, + ); } @Validate() @@ -58,11 +55,13 @@ export class DossierAttributesService extends EntitiesService> { - return this._getOne(['config', dossierTemplateId]).pipe(map(res => res.dossierAttributeConfigs)); + return this._getOne<{ dossierAttributeConfigs: List }>(['config', dossierTemplateId]).pipe( + map(res => res.dossierAttributeConfigs), + ); } @Validate() - getAttributes(@RequiredParam() dossierId: string): Observable> { - return this._getOne([dossierId]).pipe(map(res => res.dossierAttributeList)); + getAttributes(@RequiredParam() dossierId: string): Observable> { + return this._getOne<{ dossierAttributeList?: List }>([dossierId]).pipe(map(res => res.dossierAttributeList)); } } diff --git a/libs/red-domain/src/index.ts b/libs/red-domain/src/index.ts index fa34be26a..319d44f4d 100644 --- a/libs/red-domain/src/index.ts +++ b/libs/red-domain/src/index.ts @@ -1,3 +1,4 @@ export * from './lib/dossiers'; export * from './lib/search'; export * from './lib/shared/types'; +export * from './lib/dossier-attributes'; diff --git a/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.interface.ts b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.interface.ts new file mode 100644 index 000000000..43687f835 --- /dev/null +++ b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.interface.ts @@ -0,0 +1,10 @@ +import { DossierAttributeConfigType } from './types'; + +export interface IDossierAttributeConfig { + readonly id: string; + readonly editable: boolean; + readonly label: string; + readonly placeholder: string; + readonly dossierTemplateId?: string; + readonly type: DossierAttributeConfigType; +} diff --git a/apps/red-ui/src/app/state/model/dossier-attribute-config.ts b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.model.ts similarity index 67% rename from apps/red-ui/src/app/state/model/dossier-attribute-config.ts rename to libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.model.ts index 087c3081b..e27c3b88c 100644 --- a/apps/red-ui/src/app/state/model/dossier-attribute-config.ts +++ b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute-config.model.ts @@ -1,17 +1,18 @@ -import { DossierAttributeConfigType, IDossierAttributeConfig } from '@redaction/red-ui-http'; import { IListable } from '@iqser/common-ui'; +import { IDossierAttributeConfig } from './dossier-attribute-config.interface'; +import { DossierAttributeConfigType } from './types'; export class DossierAttributeConfig implements IDossierAttributeConfig, IListable { readonly id: string; readonly editable: boolean; readonly label: string; - readonly placeholder?: string; - readonly type?: DossierAttributeConfigType; - readonly dossierTemplateId: string; + readonly placeholder: string; + readonly type: DossierAttributeConfigType; + readonly dossierTemplateId?: string; constructor(dossierAttributeConfig: IDossierAttributeConfig) { this.id = dossierAttributeConfig.id; - this.editable = !!dossierAttributeConfig.editable; + this.editable = dossierAttributeConfig.editable; this.label = dossierAttributeConfig.label; this.placeholder = dossierAttributeConfig.placeholder; this.type = dossierAttributeConfig.type; diff --git a/libs/red-domain/src/lib/dossier-attributes/dossier-attribute.interface.ts b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute.interface.ts new file mode 100644 index 000000000..ac569e3ff --- /dev/null +++ b/libs/red-domain/src/lib/dossier-attributes/dossier-attribute.interface.ts @@ -0,0 +1,5 @@ +export interface IDossierAttribute { + dossierAttributeConfigId?: string; + dossierId?: string; + value?: string; +} diff --git a/libs/red-domain/src/lib/dossier-attributes/index.ts b/libs/red-domain/src/lib/dossier-attributes/index.ts new file mode 100644 index 000000000..d4927a3c0 --- /dev/null +++ b/libs/red-domain/src/lib/dossier-attributes/index.ts @@ -0,0 +1,4 @@ +export * from './types'; +export * from './dossier-attribute-config.interface'; +export * from './dossier-attribute-config.model'; +export * from './dossier-attribute.interface'; diff --git a/libs/red-domain/src/lib/dossier-attributes/types.ts b/libs/red-domain/src/lib/dossier-attributes/types.ts new file mode 100644 index 000000000..6edc61c07 --- /dev/null +++ b/libs/red-domain/src/lib/dossier-attributes/types.ts @@ -0,0 +1,12 @@ +import { IDossierAttributeConfig } from './dossier-attribute-config.interface'; + +export const DossierAttributeConfigTypes = { + DATE: 'DATE', + IMAGE: 'IMAGE', + NUMBER: 'NUMBER', + TEXT: 'TEXT', +} as const; + +export type DossierAttributeConfigType = keyof typeof DossierAttributeConfigTypes; + +export type DossierAttributeWithValue = IDossierAttributeConfig & { value: string }; diff --git a/libs/red-ui-http/src/lib/model/dossierAttribute.ts b/libs/red-ui-http/src/lib/model/dossierAttribute.ts deleted file mode 100644 index f77674536..000000000 --- a/libs/red-ui-http/src/lib/model/dossierAttribute.ts +++ /dev/null @@ -1,17 +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 DossierAttribute { - dossierAttributeConfigId?: string; - dossierId?: string; - value?: string; -} diff --git a/libs/red-ui-http/src/lib/model/dossierAttributeConfig.ts b/libs/red-ui-http/src/lib/model/dossierAttributeConfig.ts deleted file mode 100644 index d79c33800..000000000 --- a/libs/red-ui-http/src/lib/model/dossierAttributeConfig.ts +++ /dev/null @@ -1,28 +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 IDossierAttributeConfig { - readonly id: string; - readonly editable?: boolean; - readonly label: string; - readonly placeholder?: string; - readonly dossierTemplateId: string; - readonly type?: DossierAttributeConfigType; -} - -export const DossierAttributeConfigTypes = { - DATE: 'DATE', - IMAGE: 'IMAGE', - NUMBER: 'NUMBER', - TEXT: 'TEXT', -} as const; -export type DossierAttributeConfigType = keyof typeof DossierAttributeConfigTypes; diff --git a/libs/red-ui-http/src/lib/model/dossierAttributes.ts b/libs/red-ui-http/src/lib/model/dossierAttributes.ts deleted file mode 100644 index cea45607b..000000000 --- a/libs/red-ui-http/src/lib/model/dossierAttributes.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. - */ -import { DossierAttribute } from './dossierAttribute'; - -export interface DossierAttributes { - dossierAttributeList?: Array; -} diff --git a/libs/red-ui-http/src/lib/model/dossierAttributesConfig.ts b/libs/red-ui-http/src/lib/model/dossierAttributesConfig.ts deleted file mode 100644 index b9cbe72b5..000000000 --- a/libs/red-ui-http/src/lib/model/dossierAttributesConfig.ts +++ /dev/null @@ -1,17 +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. - */ -import { IDossierAttributeConfig } from './dossierAttributeConfig'; -import { List } from '../red-types'; - -export interface DossierAttributesConfig { - dossierAttributeConfigs: List; -} diff --git a/libs/red-ui-http/src/lib/model/models.ts b/libs/red-ui-http/src/lib/model/models.ts index 1b7e13d3e..eadcc8601 100644 --- a/libs/red-ui-http/src/lib/model/models.ts +++ b/libs/red-ui-http/src/lib/model/models.ts @@ -13,10 +13,6 @@ export * from './createUserRequest'; export * from './dictionary'; export * from './digitalSignature'; export * from './digitalSignatureViewModel'; -export * from './dossierAttributeConfig'; -export * from './dossierAttribute'; -export * from './dossierAttributesConfig'; -export * from './dossierAttributes'; export * from './dossierTemplate'; export * from './downloadResponse'; export * from './downloadStatus'; @@ -64,3 +60,5 @@ export * from './viewedPage'; export * from './viewedPages'; export * from './viewedPagesRequest'; export * from './watermarkModel'; +export { DossierAttributeConfigType } from '../../../../red-domain/src/lib/dossier-attributes/types'; +export { DossierAttributeConfigTypes } from '../../../../red-domain/src/lib/dossier-attributes/types';