http api refactor
This commit is contained in:
parent
0f0a349679
commit
e064646dc9
@ -0,0 +1,52 @@
|
||||
import { DossierTemplateModel } from '@redaction/red-ui-http';
|
||||
|
||||
export class DossierTemplateModelWrapper {
|
||||
dictionariesCount = 0;
|
||||
totalDictionaryEntries = 0;
|
||||
|
||||
constructor(public dossierTemplateModel: DossierTemplateModel) {}
|
||||
|
||||
get createdBy() {
|
||||
return this.dossierTemplateModel.createdBy;
|
||||
}
|
||||
|
||||
get dateAdded() {
|
||||
return this.dossierTemplateModel.dateAdded;
|
||||
}
|
||||
|
||||
get dateModified() {
|
||||
return this.dossierTemplateModel.dateModified;
|
||||
}
|
||||
|
||||
get description() {
|
||||
return this.dossierTemplateModel.description;
|
||||
}
|
||||
|
||||
get dossierTemplateId() {
|
||||
return this.dossierTemplateModel.dossierTemplateId;
|
||||
}
|
||||
|
||||
get downloadFileTypes() {
|
||||
return this.dossierTemplateModel.downloadFileTypes;
|
||||
}
|
||||
|
||||
get modifiedBy() {
|
||||
return this.dossierTemplateModel.modifiedBy;
|
||||
}
|
||||
|
||||
get name() {
|
||||
return this.dossierTemplateModel.name;
|
||||
}
|
||||
|
||||
get reportTypes() {
|
||||
return this.dossierTemplateModel.reportTypes;
|
||||
}
|
||||
|
||||
get validFrom() {
|
||||
return this.dossierTemplateModel.validFrom;
|
||||
}
|
||||
|
||||
get validTo() {
|
||||
return this.dossierTemplateModel.validTo;
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,8 @@
|
||||
import { TypeValue } from '@redaction/red-ui-http';
|
||||
|
||||
export class TypeValueWrapper {
|
||||
entries: string[] = [];
|
||||
|
||||
constructor(public typeValue: TypeValue, public label?: string, public virtual?: boolean) {}
|
||||
|
||||
get addToDictionaryAction() {
|
||||
|
||||
@ -4,7 +4,7 @@ import { PermissionsService } from '@services/permissions.service';
|
||||
import { UserPreferenceService } from '@services/user-preference.service';
|
||||
import { AdminDialogService } from '../../services/admin-dialog.service';
|
||||
import { BaseListingComponent } from '@shared/base/base-listing.component';
|
||||
import { DossierTemplateModel } from '@redaction/red-ui-http';
|
||||
import { DossierTemplateModelWrapper } from '../../../../models/file/dossier-template-model.wrapper';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-dossier-templates-listing-screen',
|
||||
@ -12,7 +12,7 @@ import { DossierTemplateModel } from '@redaction/red-ui-http';
|
||||
styleUrls: ['./dossier-templates-listing-screen.component.scss']
|
||||
})
|
||||
export class DossierTemplatesListingScreenComponent
|
||||
extends BaseListingComponent<DossierTemplateModel>
|
||||
extends BaseListingComponent<DossierTemplateModelWrapper>
|
||||
implements OnInit
|
||||
{
|
||||
protected readonly _searchKey = 'name';
|
||||
|
||||
@ -6,20 +6,20 @@ import { environment } from '@environments/environment';
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
|
||||
import { debounce } from '@utils/debounce';
|
||||
import { WatermarkControllerService, WatermarkModel } from '@redaction/red-ui-http';
|
||||
import { WatermarkControllerService, WatermarkModelRes } from '@redaction/red-ui-http';
|
||||
import { NotificationService, NotificationType } from '@services/notification.service';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { hexToRgb } from '@utils/functions';
|
||||
import { BASE_HREF } from '../../../../tokens';
|
||||
|
||||
export const DEFAULT_WATERMARK: WatermarkModel = {
|
||||
export const DEFAULT_WATERMARK: WatermarkModelRes = {
|
||||
text: null,
|
||||
hexColor: '#dd4d50',
|
||||
opacity: 70,
|
||||
fontSize: 11,
|
||||
fontType: 'sans-serif',
|
||||
orientation: WatermarkModel.WatermarkOrientationEnum.DIAGONAL
|
||||
orientation: WatermarkModelRes.OrientationEnum.DIAGONAL
|
||||
};
|
||||
|
||||
@Component({
|
||||
@ -31,7 +31,7 @@ export class WatermarkScreenComponent implements OnInit {
|
||||
viewReady = false;
|
||||
configForm: FormGroup;
|
||||
private _instance: WebViewerInstance;
|
||||
private _watermark: WatermarkModel = {};
|
||||
private _watermark: WatermarkModelRes = {};
|
||||
@ViewChild('viewer', { static: true })
|
||||
private _viewer: ElementRef;
|
||||
|
||||
@ -194,7 +194,7 @@ export class WatermarkScreenComponent implements OnInit {
|
||||
const text = this.configForm.get('text').value || '';
|
||||
const fontSize = this.configForm.get('fontSize').value;
|
||||
const fontType = this.configForm.get('fontType').value;
|
||||
const orientation: WatermarkModel.WatermarkOrientationEnum =
|
||||
const orientation: WatermarkModelRes.OrientationEnum =
|
||||
this.configForm.get('orientation').value;
|
||||
const opacity = this.configForm.get('opacity').value;
|
||||
const color = this.configForm.get('hexColor').value;
|
||||
@ -208,13 +208,13 @@ export class WatermarkScreenComponent implements OnInit {
|
||||
await stamper.setOpacity(opacity / 100);
|
||||
|
||||
switch (orientation) {
|
||||
case WatermarkModel.WatermarkOrientationEnum.VERTICAL:
|
||||
case WatermarkModelRes.OrientationEnum.VERTICAL:
|
||||
await stamper.setAlignment(0, 0);
|
||||
await stamper.setRotation(-90);
|
||||
break;
|
||||
case WatermarkModel.WatermarkOrientationEnum.HORIZONTAL:
|
||||
case WatermarkModelRes.OrientationEnum.HORIZONTAL:
|
||||
break;
|
||||
case WatermarkModel.WatermarkOrientationEnum.DIAGONAL:
|
||||
case WatermarkModelRes.OrientationEnum.DIAGONAL:
|
||||
default:
|
||||
await stamper.setAlignment(0, 0);
|
||||
await stamper.setRotation(-45);
|
||||
|
||||
@ -2,8 +2,6 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||
import { PermissionsService } from '@services/permissions.service';
|
||||
import { DossierWrapper } from '@state/model/dossier.wrapper';
|
||||
import { StatusSorter } from '@utils/sorters/status-sorter';
|
||||
import { download } from '@utils/file-download-utils';
|
||||
import { computerize } from '@utils/functions';
|
||||
import { FileManagementControllerService } from '@redaction/red-ui-http';
|
||||
import { AppStateService } from '@state/app-state.service';
|
||||
import { DossiersDialogService } from '../../services/dossiers-dialog.service';
|
||||
@ -44,31 +42,6 @@ export class DossierListingActionsComponent {
|
||||
});
|
||||
}
|
||||
|
||||
// Download Files
|
||||
downloadRedactedFiles($event: MouseEvent, dossier: DossierWrapper) {
|
||||
$event.stopPropagation();
|
||||
this._fileManagementControllerService
|
||||
.downloadRedactedFiles(
|
||||
{ fileIds: dossier.files.map((file) => file.fileId) },
|
||||
dossier.dossierId,
|
||||
false,
|
||||
'response'
|
||||
)
|
||||
.subscribe((data) => {
|
||||
download(data, 'redacted_files_' + computerize(dossier.name) + '.zip');
|
||||
});
|
||||
}
|
||||
|
||||
canDownloadRedactedFiles(dossier: DossierWrapper) {
|
||||
return (
|
||||
dossier.files.length > 0 &&
|
||||
dossier.files.reduce(
|
||||
(acc, file) => acc && this.permissionsService.canDownloadRedactedFile(file),
|
||||
true
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
getDossierStatusConfig(pw: DossierWrapper) {
|
||||
const obj = pw.files.reduce((acc, file) => {
|
||||
const status = file.status;
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';
|
||||
import { TypeValue } from '@redaction/red-ui-http';
|
||||
import { TypeValueWrapper } from '@models/file/type-value.wrapper';
|
||||
|
||||
@Component({
|
||||
|
||||
@ -34,12 +34,12 @@ export class FileDownloadBtnComponent {
|
||||
return (
|
||||
this.file.length > 0 &&
|
||||
this.file.reduce(
|
||||
(acc, file) => acc && this._permissionsService.canDownloadRedactedFile(file),
|
||||
(acc, file) => acc && this._permissionsService.canDownloadFiles(file),
|
||||
true
|
||||
)
|
||||
);
|
||||
} else {
|
||||
return this._permissionsService.canDownloadRedactedFile(this.file);
|
||||
return this._permissionsService.canDownloadFiles(this.file);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@ export class DictionaryManagerComponent implements OnChanges {
|
||||
searchText = '';
|
||||
|
||||
selectDossierTemplate = { name: 'dictionary-overview.compare.select-dossier-template' };
|
||||
selectDictionary = { label: 'dictionary-overview.compare.select-dictionary' };
|
||||
selectDictionary = new TypeValueWrapper(null, 'dictionary-overview.compare.select-dictionary');
|
||||
dossierTemplates: DossierTemplateModel[];
|
||||
dictionaries: TypeValueWrapper[] = [this.selectDictionary];
|
||||
form: FormGroup;
|
||||
|
||||
@ -41,13 +41,7 @@ export class FileDownloadService {
|
||||
return this._downloadControllerService
|
||||
.prepareDownload({
|
||||
fileIds: fileStatusWrappers.map((f) => f.fileId),
|
||||
dossierId: dossier.dossierId,
|
||||
reportTypes: [
|
||||
'WORD_SINGLE_FILE_EFSA_TEMPLATE',
|
||||
'WORD_SINGLE_FILE_SYNGENTA_TEMPLATE',
|
||||
'EXCEL_MULTI_FILE'
|
||||
],
|
||||
downloadFileTypes: ['PREVIEW', 'REDACTED']
|
||||
dossierId: dossier.dossierId
|
||||
})
|
||||
.pipe(mergeMap(() => this.getDownloadStatus()));
|
||||
}
|
||||
|
||||
@ -7,7 +7,7 @@ import { AppConfigKey, AppConfigService } from '@app-config/app-config.service';
|
||||
import { TranslateService } from '@ngx-translate/core';
|
||||
import { UploadDownloadDialogService } from './upload-download-dialog.service';
|
||||
import { toNumber } from '@utils/functions';
|
||||
import { UploadControllerService } from '../../../../../../../libs/red-ui-http/src/lib/api/uploadController.service';
|
||||
import { UploadControllerService } from '@redaction/red-ui-http';
|
||||
|
||||
export interface ActiveUpload {
|
||||
subscription: Subscription;
|
||||
|
||||
@ -296,7 +296,7 @@ export class PermissionsService {
|
||||
);
|
||||
}
|
||||
|
||||
canDownloadRedactedFile(fileStatus: FileStatusWrapper) {
|
||||
canDownloadFiles(fileStatus: FileStatusWrapper) {
|
||||
if (!fileStatus) {
|
||||
fileStatus = this._appStateService.activeFile;
|
||||
}
|
||||
|
||||
@ -4,7 +4,6 @@ import {
|
||||
Dossier,
|
||||
DossierControllerService,
|
||||
DossierTemplateControllerService,
|
||||
DossierTemplateModel,
|
||||
FileAttributesConfig,
|
||||
FileAttributesControllerService,
|
||||
FileStatus,
|
||||
@ -21,10 +20,11 @@ import { humanize } from '@utils/functions';
|
||||
import { FileStatusWrapper } from '@models/file/file-status.wrapper';
|
||||
import { DossierWrapper } from './model/dossier.wrapper';
|
||||
import { TypeValueWrapper } from '@models/file/type-value.wrapper';
|
||||
import { DossierTemplateModelWrapper } from '@models/file/dossier-template-model.wrapper';
|
||||
|
||||
export interface AppState {
|
||||
dossiers: DossierWrapper[];
|
||||
dossierTemplates: DossierTemplateModel[];
|
||||
dossierTemplates: DossierTemplateModelWrapper[];
|
||||
activeDossierId: string;
|
||||
activeFileId: string;
|
||||
activeDossierTemplateId: string;
|
||||
@ -99,11 +99,11 @@ export class AppStateService {
|
||||
return this._appState.activeDossierTemplateId;
|
||||
}
|
||||
|
||||
get activeDossierTemplate(): DossierTemplateModel {
|
||||
get activeDossierTemplate(): DossierTemplateModelWrapper {
|
||||
return this.getDossierTemplateById(this.activeDossierTemplateId);
|
||||
}
|
||||
|
||||
get dossierTemplates(): DossierTemplateModel[] {
|
||||
get dossierTemplates(): DossierTemplateModelWrapper[] {
|
||||
return this._appState.dossierTemplates;
|
||||
}
|
||||
|
||||
@ -206,7 +206,7 @@ export class AppStateService {
|
||||
return color ? color : this._dictionaryData[dossierTemplateId]['default'].hexColor;
|
||||
}
|
||||
|
||||
getDossierTemplateById(id: string): DossierTemplateModel {
|
||||
getDossierTemplateById(id: string): DossierTemplateModelWrapper {
|
||||
return this.dossierTemplates.find((rs) => rs.dossierTemplateId === id);
|
||||
}
|
||||
|
||||
@ -429,9 +429,12 @@ export class AppStateService {
|
||||
}
|
||||
|
||||
async loadAllDossierTemplates() {
|
||||
this._appState.dossierTemplates = await this._dossierTemplateControllerService
|
||||
const dossierTemplates = await this._dossierTemplateControllerService
|
||||
.getAllDossierTemplates1()
|
||||
.toPromise();
|
||||
this._appState.dossierTemplates = dossierTemplates.map(
|
||||
(dossierTemplate) => new DossierTemplateModelWrapper(dossierTemplate)
|
||||
);
|
||||
this._appState.fileAttributesConfig = {};
|
||||
for (const dossierTemplate of this._appState.dossierTemplates) {
|
||||
this._appState.fileAttributesConfig[dossierTemplate.dossierTemplateId] =
|
||||
|
||||
@ -23,6 +23,7 @@ import { DigitalSignatureControllerService } from './api/digitalSignatureControl
|
||||
import { AuditControllerService } from './api/auditController.service';
|
||||
import { FileAttributesControllerService } from './api/fileAttributesController.service';
|
||||
import { SmtpConfigurationControllerService } from './api/smtpConfigurationController.service';
|
||||
import { UploadControllerService } from './api/uploadController.service';
|
||||
|
||||
@NgModule({
|
||||
imports: [],
|
||||
@ -49,7 +50,8 @@ import { SmtpConfigurationControllerService } from './api/smtpConfigurationContr
|
||||
DownloadControllerService,
|
||||
DigitalSignatureControllerService,
|
||||
FileAttributesControllerService,
|
||||
SmtpConfigurationControllerService
|
||||
SmtpConfigurationControllerService,
|
||||
UploadControllerService
|
||||
]
|
||||
})
|
||||
export class ApiModule {
|
||||
|
||||
@ -22,6 +22,7 @@ import { DigitalSignatureControllerService } from './digitalSignatureController.
|
||||
import { FileAttributesControllerService } from './fileAttributesController.service';
|
||||
import { SmtpConfigurationControllerService } from './smtpConfigurationController.service';
|
||||
import { ReportTemplateControllerService } from './reportTemplateController.service';
|
||||
import { UploadControllerService } from './uploadController.service';
|
||||
|
||||
export * from './auditController.service';
|
||||
|
||||
@ -71,6 +72,8 @@ export * from './smtpConfigurationController.service';
|
||||
|
||||
export * from './reportTemplateController.service';
|
||||
|
||||
export * from './uploadController.service';
|
||||
|
||||
export const APIS = [
|
||||
AuditControllerService,
|
||||
DebugControllerService,
|
||||
@ -95,5 +98,6 @@ export const APIS = [
|
||||
DigitalSignatureControllerService,
|
||||
FileAttributesControllerService,
|
||||
SmtpConfigurationControllerService,
|
||||
ReportTemplateControllerService
|
||||
ReportTemplateControllerService,
|
||||
UploadControllerService
|
||||
];
|
||||
|
||||
@ -301,27 +301,34 @@ export class FileManagementControllerService {
|
||||
dossierId: string,
|
||||
fileId: string,
|
||||
inline?: boolean,
|
||||
indicator?: string,
|
||||
observe?: 'body',
|
||||
reportProgress?: boolean
|
||||
): Observable<any>;
|
||||
|
||||
public downloadOriginalFile(
|
||||
dossierId: string,
|
||||
fileId: string,
|
||||
inline?: boolean,
|
||||
indicator?: string,
|
||||
observe?: 'response',
|
||||
reportProgress?: boolean
|
||||
): Observable<HttpResponse<any>>;
|
||||
|
||||
public downloadOriginalFile(
|
||||
dossierId: string,
|
||||
fileId: string,
|
||||
inline?: boolean,
|
||||
indicator?: string,
|
||||
observe?: 'events',
|
||||
reportProgress?: boolean
|
||||
): Observable<HttpEvent<any>>;
|
||||
|
||||
public downloadOriginalFile(
|
||||
dossierId: string,
|
||||
fileId: string,
|
||||
inline?: boolean,
|
||||
indicator?: string,
|
||||
observe: any = 'body',
|
||||
reportProgress: boolean = false
|
||||
): Observable<any> {
|
||||
@ -341,6 +348,9 @@ export class FileManagementControllerService {
|
||||
if (inline !== undefined && inline !== null) {
|
||||
queryParameters = queryParameters.set('inline', <any>inline);
|
||||
}
|
||||
if (indicator !== undefined && indicator !== null) {
|
||||
queryParameters = queryParameters.set('indicator', <any>indicator);
|
||||
}
|
||||
|
||||
let headers = this.defaultHeaders;
|
||||
|
||||
@ -361,12 +371,13 @@ export class FileManagementControllerService {
|
||||
headers = headers.set('Accept', httpHeaderAcceptSelected);
|
||||
}
|
||||
|
||||
return this.httpClient.request<any>(
|
||||
return this.httpClient.request(
|
||||
'get',
|
||||
`${this.basePath}/redaction-gateway-v1/download/original/${encodeURIComponent(
|
||||
`${this.basePath}/download/original/${encodeURIComponent(
|
||||
String(dossierId)
|
||||
)}/${encodeURIComponent(String(fileId))}`,
|
||||
{
|
||||
responseType: 'blob',
|
||||
params: queryParameters,
|
||||
withCredentials: this.configuration.withCredentials,
|
||||
headers: headers,
|
||||
|
||||
@ -155,7 +155,7 @@ export namespace FileStatus {
|
||||
ERROR: 'ERROR' as StatusEnum,
|
||||
EXCLUDED: 'EXCLUDED' as StatusEnum,
|
||||
FULLREPROCESS: 'FULLREPROCESS' as StatusEnum,
|
||||
OCRPROCESSING: 'OCR_PROCESSING' as StatusEnum,
|
||||
OCR_PROCESSING: 'OCR_PROCESSING' as StatusEnum,
|
||||
PROCESSING: 'PROCESSING' as StatusEnum,
|
||||
REPROCESS: 'REPROCESS' as StatusEnum,
|
||||
UNASSIGNED: 'UNASSIGNED' as StatusEnum,
|
||||
|
||||
@ -40,7 +40,7 @@ export namespace ReportData {
|
||||
ERROR: 'ERROR' as StatusEnum,
|
||||
EXCLUDED: 'EXCLUDED' as StatusEnum,
|
||||
FULLREPROCESS: 'FULLREPROCESS' as StatusEnum,
|
||||
OCRPROCESSING: 'OCR_PROCESSING' as StatusEnum,
|
||||
OCR_PROCESSING: 'OCR_PROCESSING' as StatusEnum,
|
||||
PROCESSING: 'PROCESSING' as StatusEnum,
|
||||
REPROCESS: 'REPROCESS' as StatusEnum,
|
||||
UNASSIGNED: 'UNASSIGNED' as StatusEnum,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user