mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 18:14:17 +00:00
Moved normalizeSectionData function to SubmissionResponseParsingService
This commit is contained in:
@@ -1,57 +1,13 @@
|
|||||||
import { WorkspaceitemSectionFormObject } from './workspaceitem-section-form.model';
|
import { WorkspaceitemSectionFormObject } from './workspaceitem-section-form.model';
|
||||||
import { WorkspaceitemSectionLicenseObject } from './workspaceitem-section-license.model';
|
import { WorkspaceitemSectionLicenseObject } from './workspaceitem-section-license.model';
|
||||||
import { WorkspaceitemSectionUploadObject } from './workspaceitem-section-upload.model';
|
import { WorkspaceitemSectionUploadObject } from './workspaceitem-section-upload.model';
|
||||||
import { isNotNull } from '../../../shared/empty.util';
|
|
||||||
import { WorkspaceitemSectionRecycleObject } from './workspaceitem-section-recycle.model';
|
import { WorkspaceitemSectionRecycleObject } from './workspaceitem-section-recycle.model';
|
||||||
import { WorkspaceitemSectionDetectDuplicateObject } from './workspaceitem-section-deduplication.model';
|
import { WorkspaceitemSectionDetectDuplicateObject } from './workspaceitem-section-deduplication.model';
|
||||||
import { FormFieldMetadataValueObject } from '../../../shared/form/builder/models/form-field-metadata-value.model';
|
|
||||||
|
|
||||||
export class WorkspaceitemSectionsObject {
|
export class WorkspaceitemSectionsObject {
|
||||||
[name: string]: WorkspaceitemSectionDataType;
|
[name: string]: WorkspaceitemSectionDataType;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isServerFormValue(obj: any): boolean {
|
|
||||||
return (typeof obj === 'object'
|
|
||||||
&& obj.hasOwnProperty('value')
|
|
||||||
&& obj.hasOwnProperty('language')
|
|
||||||
&& obj.hasOwnProperty('authority')
|
|
||||||
&& obj.hasOwnProperty('confidence')
|
|
||||||
&& obj.hasOwnProperty('place'))
|
|
||||||
}
|
|
||||||
|
|
||||||
export function normalizeSectionData(obj: any) {
|
|
||||||
let result: any = obj;
|
|
||||||
if (isNotNull(obj)) {
|
|
||||||
// If is an Instance of FormFieldMetadataValueObject normalize it
|
|
||||||
if (typeof obj === 'object' && isServerFormValue(obj)) {
|
|
||||||
// If authority property is set normalize as a FormFieldMetadataValueObject object
|
|
||||||
/* NOTE: Data received from server could have authority property equal to null, but into form
|
|
||||||
field's model is required a FormFieldMetadataValueObject object as field value, so instantiate it */
|
|
||||||
result = new FormFieldMetadataValueObject(
|
|
||||||
obj.value,
|
|
||||||
obj.language,
|
|
||||||
obj.authority,
|
|
||||||
(obj.display || obj.value),
|
|
||||||
obj.place,
|
|
||||||
obj.confidence,
|
|
||||||
obj.otherInformation
|
|
||||||
);
|
|
||||||
} else if (Array.isArray(obj)) {
|
|
||||||
result = [];
|
|
||||||
obj.forEach((item, index) => {
|
|
||||||
result[index] = normalizeSectionData(item);
|
|
||||||
});
|
|
||||||
} else if (typeof obj === 'object') {
|
|
||||||
result = Object.create({});
|
|
||||||
Object.keys(obj)
|
|
||||||
.forEach((key) => {
|
|
||||||
result[key] = normalizeSectionData(obj[key]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
export type WorkspaceitemSectionDataType
|
export type WorkspaceitemSectionDataType
|
||||||
= WorkspaceitemSectionUploadObject
|
= WorkspaceitemSectionUploadObject
|
||||||
| WorkspaceitemSectionFormObject
|
| WorkspaceitemSectionFormObject
|
||||||
|
@@ -14,10 +14,55 @@ import { NormalizedSubmissionObjectFactory } from './normalized-submission-objec
|
|||||||
import { NormalizedObject } from '../cache/models/normalized-object.model';
|
import { NormalizedObject } from '../cache/models/normalized-object.model';
|
||||||
import { SubmissionResourceType } from './submission-resource-type';
|
import { SubmissionResourceType } from './submission-resource-type';
|
||||||
import { NormalizedWorkspaceItem } from './models/normalized-workspaceitem.model';
|
import { NormalizedWorkspaceItem } from './models/normalized-workspaceitem.model';
|
||||||
import { normalizeSectionData } from './models/workspaceitem-sections.model';
|
|
||||||
import { NormalizedWorkflowItem } from './models/normalized-workflowitem.model';
|
import { NormalizedWorkflowItem } from './models/normalized-workflowitem.model';
|
||||||
import { NormalizedEditItem } from './models/normalized-edititem.model';
|
import { NormalizedEditItem } from './models/normalized-edititem.model';
|
||||||
|
import { FormFieldMetadataValueObject } from '../../shared/form/builder/models/form-field-metadata-value.model';
|
||||||
|
|
||||||
|
export function isServerFormValue(obj: any): boolean {
|
||||||
|
return (typeof obj === 'object'
|
||||||
|
&& obj.hasOwnProperty('value')
|
||||||
|
&& obj.hasOwnProperty('language')
|
||||||
|
&& obj.hasOwnProperty('authority')
|
||||||
|
&& obj.hasOwnProperty('confidence')
|
||||||
|
&& obj.hasOwnProperty('place'))
|
||||||
|
}
|
||||||
|
|
||||||
|
export function normalizeSectionData(obj: any) {
|
||||||
|
let result: any = obj;
|
||||||
|
if (isNotNull(obj)) {
|
||||||
|
// If is an Instance of FormFieldMetadataValueObject normalize it
|
||||||
|
if (typeof obj === 'object' && isServerFormValue(obj)) {
|
||||||
|
// If authority property is set normalize as a FormFieldMetadataValueObject object
|
||||||
|
/* NOTE: Data received from server could have authority property equal to null, but into form
|
||||||
|
field's model is required a FormFieldMetadataValueObject object as field value, so instantiate it */
|
||||||
|
result = new FormFieldMetadataValueObject(
|
||||||
|
obj.value,
|
||||||
|
obj.language,
|
||||||
|
obj.authority,
|
||||||
|
(obj.display || obj.value),
|
||||||
|
obj.place,
|
||||||
|
obj.confidence,
|
||||||
|
obj.otherInformation
|
||||||
|
);
|
||||||
|
} else if (Array.isArray(obj)) {
|
||||||
|
result = [];
|
||||||
|
obj.forEach((item, index) => {
|
||||||
|
result[index] = normalizeSectionData(item);
|
||||||
|
});
|
||||||
|
} else if (typeof obj === 'object') {
|
||||||
|
result = Object.create({});
|
||||||
|
Object.keys(obj)
|
||||||
|
.forEach((key) => {
|
||||||
|
result[key] = normalizeSectionData(obj[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides methods to parse response for a submission request.
|
||||||
|
*/
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class SubmissionResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
export class SubmissionResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
||||||
|
|
||||||
|
@@ -7,7 +7,7 @@ import { first } from 'rxjs/operators';
|
|||||||
import { SectionsService } from '../../sections/sections.service';
|
import { SectionsService } from '../../sections/sections.service';
|
||||||
import { hasValue, isEmpty, isNotEmpty } from '../../../shared/empty.util';
|
import { hasValue, isEmpty, isNotEmpty } from '../../../shared/empty.util';
|
||||||
import { Workspaceitem } from '../../../core/submission/models/workspaceitem.model';
|
import { Workspaceitem } from '../../../core/submission/models/workspaceitem.model';
|
||||||
import { normalizeSectionData } from '../../../core/submission/models/workspaceitem-sections.model';
|
import { normalizeSectionData } from '../../../core/submission/submission-response-parsing.service';
|
||||||
import { SubmissionService } from '../../submission.service';
|
import { SubmissionService } from '../../submission.service';
|
||||||
import { NotificationsService } from '../../../shared/notifications/notifications.service';
|
import { NotificationsService } from '../../../shared/notifications/notifications.service';
|
||||||
import { UploaderOptions } from '../../../shared/uploader/uploader-options.model';
|
import { UploaderOptions } from '../../../shared/uploader/uploader-options.model';
|
||||||
|
Reference in New Issue
Block a user