mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
remove most uses of normalizedserializer
This commit is contained in:
@@ -17,4 +17,5 @@ import { listableObjectComponent } from '../../../../shared/object-collection/sh
|
||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||
})
|
||||
export class PublicationComponent extends ItemComponent {
|
||||
|
||||
}
|
||||
|
@@ -10,6 +10,7 @@ import { Relationship } from '../../../core/shared/item-relationships/relationsh
|
||||
import { Item } from '../../../core/shared/item.model';
|
||||
import { MetadatumRepresentation } from '../../../core/shared/metadata-representation/metadatum/metadatum-representation.model';
|
||||
import { ItemMetadataRepresentation } from '../../../core/shared/metadata-representation/item/item-metadata-representation.model';
|
||||
import { followLink } from '../../../shared/utils/follow-link-config.model';
|
||||
import { AbstractIncrementalListComponent } from '../abstract-incremental-list/abstract-incremental-list.component';
|
||||
|
||||
@Component({
|
||||
@@ -81,7 +82,7 @@ export class MetadataRepresentationListComponent extends AbstractIncrementalList
|
||||
.map((metadatum: any) => Object.assign(new MetadataValue(), metadatum))
|
||||
.map((metadatum: MetadataValue) => {
|
||||
if (metadatum.isVirtual) {
|
||||
return this.relationshipService.findById(metadatum.virtualValue).pipe(
|
||||
return this.relationshipService.findById(metadatum.virtualValue, followLink('leftItem'), followLink('rightItem')).pipe(
|
||||
getSucceededRemoteData(),
|
||||
switchMap((relRD: RemoteData<Relationship>) =>
|
||||
observableCombineLatest(relRD.payload.leftItem, relRD.payload.rightItem).pipe(
|
||||
|
@@ -10,7 +10,7 @@
|
||||
[options]="config.notifications">
|
||||
</ds-notifications-board>
|
||||
<main class="main-content">
|
||||
<div class="container" *ngIf="isLoading">
|
||||
<div class="container" *ngIf="isLoading$ | async">
|
||||
<ds-loading message="{{'loading.default' | translate}}"></ds-loading>
|
||||
</div>
|
||||
<router-outlet></router-outlet>
|
||||
|
@@ -19,7 +19,7 @@ import variables from '../styles/_exposed_variables.scss';
|
||||
import { CSSVariableService } from './shared/sass-helper/sass-helper.service';
|
||||
import { MenuService } from './shared/menu/menu.service';
|
||||
import { MenuID } from './shared/menu/initial-menus-state';
|
||||
import { combineLatest as combineLatestObservable, Observable, of } from 'rxjs';
|
||||
import { BehaviorSubject, combineLatest as combineLatestObservable, Observable, of } from 'rxjs';
|
||||
import { slideSidebarPadding } from './shared/animations/slide';
|
||||
import { HostWindowService } from './shared/host-window.service';
|
||||
import { Theme } from '../config/theme.inferface';
|
||||
@@ -38,7 +38,7 @@ export const LANG_COOKIE = 'language_cookie';
|
||||
animations: [slideSidebarPadding]
|
||||
})
|
||||
export class AppComponent implements OnInit, AfterViewInit {
|
||||
isLoading = true;
|
||||
isLoading$: BehaviorSubject<boolean> = new BehaviorSubject(true);
|
||||
sidebarVisible: Observable<boolean>;
|
||||
slideSidebarOver: Observable<boolean>;
|
||||
collapsedSidebarWidth: Observable<string>;
|
||||
@@ -131,12 +131,12 @@ export class AppComponent implements OnInit, AfterViewInit {
|
||||
delay(0)
|
||||
).subscribe((event) => {
|
||||
if (event instanceof NavigationStart) {
|
||||
this.isLoading = true;
|
||||
this.isLoading$.next(true);
|
||||
} else if (
|
||||
event instanceof NavigationEnd ||
|
||||
event instanceof NavigationCancel
|
||||
) {
|
||||
this.isLoading = false;
|
||||
this.isLoading$.next(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@@ -2,6 +2,7 @@ import { delay, exhaustMap, map, switchMap, take } from 'rxjs/operators';
|
||||
import { Inject, Injectable } from '@angular/core';
|
||||
import { Actions, Effect, ofType } from '@ngrx/effects';
|
||||
import { coreSelector } from '../core.selectors';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import {
|
||||
AddToSSBAction,
|
||||
CommitSSBAction,
|
||||
@@ -18,7 +19,6 @@ import { RequestService } from '../data/request.service';
|
||||
import { PutRequest } from '../data/request.models';
|
||||
import { ObjectCacheService } from './object-cache.service';
|
||||
import { ApplyPatchObjectCacheAction } from './object-cache.actions';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { GenericConstructor } from '../shared/generic-constructor';
|
||||
import { hasValue, isNotEmpty, isNotUndefined } from '../../shared/empty.util';
|
||||
import { Observable } from 'rxjs/internal/Observable';
|
||||
@@ -100,7 +100,7 @@ export class ServerSyncBufferEffects {
|
||||
|
||||
return patchObject.pipe(
|
||||
map((object) => {
|
||||
const serializedObject = new NormalizedObjectSerializer(object.constructor as GenericConstructor<{}>).serialize(object);
|
||||
const serializedObject = new DSpaceSerializer(object.constructor as GenericConstructor<{}>).serialize(object);
|
||||
|
||||
this.requestService.configure(new PutRequest(this.requestService.generateRequestId(), href, serializedObject));
|
||||
|
||||
|
@@ -1,6 +1,5 @@
|
||||
import { hasNoValue, hasValue, isNotEmpty } from '../../shared/empty.util';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { CacheableObject } from '../cache/object-cache.reducer';
|
||||
import { Serializer } from '../serializer';
|
||||
import { PageInfo } from '../shared/page-info.model';
|
||||
@@ -129,7 +128,7 @@ export abstract class BaseResponseParsingService {
|
||||
processPageInfo(payload: any): PageInfo {
|
||||
if (hasValue(payload.page)) {
|
||||
const pageObj = Object.assign({}, payload.page, { _links: payload._links });
|
||||
const pageInfoObject = new NormalizedObjectSerializer(PageInfo).deserialize(pageObj);
|
||||
const pageInfoObject = new DSpaceSerializer(PageInfo).deserialize(pageObj);
|
||||
if (pageInfoObject.currentPage >= 0) {
|
||||
Object.assign(pageInfoObject, { currentPage: pageInfoObject.currentPage + 1 });
|
||||
}
|
||||
|
@@ -17,8 +17,8 @@ import { SearchParam } from '../cache/models/search-param.model';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import { ContentSourceSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { CoreState } from '../core.reducers';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { HttpOptions } from '../dspace-rest-v2/dspace-rest-v2.service';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { Collection } from '../shared/collection.model';
|
||||
import { COLLECTION } from '../shared/collection.resource-type';
|
||||
import { ContentSource } from '../shared/content-source.model';
|
||||
@@ -153,7 +153,7 @@ export class CollectionDataService extends ComColDataService<Collection> {
|
||||
*/
|
||||
updateContentSource(collectionId: string, contentSource: ContentSource): Observable<ContentSource | INotification> {
|
||||
const requestId = this.requestService.generateRequestId();
|
||||
const serializedContentSource = new NormalizedObjectSerializer(ContentSource).serialize(contentSource);
|
||||
const serializedContentSource = new DSpaceSerializer(ContentSource).serialize(contentSource);
|
||||
const request$ = this.getHarvesterEndpoint(collectionId).pipe(
|
||||
take(1),
|
||||
map((href: string) => {
|
||||
|
@@ -1,11 +1,11 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { ContentSourceSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { ContentSource } from '../shared/content-source.model';
|
||||
import { MetadataConfig } from '../shared/metadata-config.model';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
|
||||
@Injectable()
|
||||
/**
|
||||
@@ -17,11 +17,11 @@ export class ContentSourceResponseParsingService implements ResponseParsingServi
|
||||
parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse {
|
||||
const payload = data.payload;
|
||||
|
||||
const deserialized = new NormalizedObjectSerializer(ContentSource).deserialize(payload);
|
||||
const deserialized = new DSpaceSerializer(ContentSource).deserialize(payload);
|
||||
|
||||
let metadataConfigs = [];
|
||||
if (payload._embedded && payload._embedded.harvestermetadata && payload._embedded.harvestermetadata.configs) {
|
||||
metadataConfigs = new NormalizedObjectSerializer(MetadataConfig).serializeArray(payload._embedded.harvestermetadata.configs);
|
||||
metadataConfigs = new DSpaceSerializer(MetadataConfig).serializeArray(payload._embedded.harvestermetadata.configs);
|
||||
}
|
||||
deserialized.metadataConfigs = metadataConfigs;
|
||||
|
||||
|
@@ -27,7 +27,7 @@ import { CacheableObject } from '../cache/object-cache.reducer';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import { ErrorResponse, RestResponse } from '../cache/response.models';
|
||||
import { CoreState } from '../core.reducers';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { DSpaceObject } from '../shared/dspace-object.model';
|
||||
import { HALEndpointService } from '../shared/hal-endpoint.service';
|
||||
import {
|
||||
@@ -334,7 +334,7 @@ export abstract class DataService<T extends CacheableObject> {
|
||||
);
|
||||
|
||||
const normalizedObject: NormalizedObject<T> = this.dataBuildService.normalize<T>(dso);
|
||||
const serializedDso = new NormalizedObjectSerializer(getMapsToType((dso as any).type)).serialize(normalizedObject);
|
||||
const serializedDso = new DSpaceSerializer(getMapsToType((dso as any).type)).serialize(normalizedObject);
|
||||
|
||||
const request$ = endpoint$.pipe(
|
||||
take(1),
|
||||
|
@@ -1,17 +1,14 @@
|
||||
import { Inject, Injectable } from '@angular/core';
|
||||
import {
|
||||
FacetConfigSuccessResponse,
|
||||
RestResponse
|
||||
} from '../cache/response.models';
|
||||
import { GLOBAL_CONFIG } from '../../../config';
|
||||
import { GlobalConfig } from '../../../config/global-config.interface';
|
||||
import { SearchFilterConfig } from '../../shared/search/search-filter-config.model';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import { FacetConfigSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { BaseResponseParsingService } from './base-response-parsing.service';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { SearchFilterConfig } from '../../shared/search/search-filter-config.model';
|
||||
import { BaseResponseParsingService } from './base-response-parsing.service';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import { GlobalConfig } from '../../../config/global-config.interface';
|
||||
import { GLOBAL_CONFIG } from '../../../config';
|
||||
|
||||
@Injectable()
|
||||
export class FacetConfigResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
||||
@@ -24,7 +21,7 @@ export class FacetConfigResponseParsingService extends BaseResponseParsingServic
|
||||
parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse {
|
||||
|
||||
const config = data.payload._embedded.facets;
|
||||
const serializer = new NormalizedObjectSerializer(SearchFilterConfig);
|
||||
const serializer = new DSpaceSerializer(SearchFilterConfig);
|
||||
const facetConfig = serializer.deserializeArray(config);
|
||||
return new FacetConfigSuccessResponse(facetConfig, data.statusCode, data.statusText);
|
||||
}
|
||||
|
@@ -1,19 +1,19 @@
|
||||
import { Inject, Injectable } from '@angular/core';
|
||||
import { GLOBAL_CONFIG } from '../../../config';
|
||||
import { GlobalConfig } from '../../../config/global-config.interface';
|
||||
import { FacetValue } from '../../shared/search/facet-value.model';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import {
|
||||
FacetValueMap,
|
||||
FacetValueMapSuccessResponse,
|
||||
FacetValueSuccessResponse,
|
||||
RestResponse
|
||||
} from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { BaseResponseParsingService } from './base-response-parsing.service';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { FacetValue } from '../../shared/search/facet-value.model';
|
||||
import { BaseResponseParsingService } from './base-response-parsing.service';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import { GlobalConfig } from '../../../config/global-config.interface';
|
||||
import { GLOBAL_CONFIG } from '../../../config';
|
||||
|
||||
@Injectable()
|
||||
export class FacetValueMapResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
||||
@@ -30,7 +30,7 @@ export class FacetValueMapResponseParsingService extends BaseResponseParsingServ
|
||||
const payload = data.payload;
|
||||
const facetMap: FacetValueMap = new FacetValueMap();
|
||||
|
||||
const serializer = new NormalizedObjectSerializer(FacetValue);
|
||||
const serializer = new DSpaceSerializer(FacetValue);
|
||||
payload._embedded.facets.map((facet) => {
|
||||
const values = facet._embedded.values.map((value) => {value.search = value._links.search.href; return value;});
|
||||
const facetValues = serializer.deserializeArray(values);
|
||||
|
@@ -1,14 +1,14 @@
|
||||
import { Inject, Injectable } from '@angular/core';
|
||||
import { FacetValueSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { FacetValue } from '../../shared/search/facet-value.model';
|
||||
import { BaseResponseParsingService } from './base-response-parsing.service';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import { GLOBAL_CONFIG } from '../../../config';
|
||||
import { GlobalConfig } from '../../../config/global-config.interface';
|
||||
import { FacetValue } from '../../shared/search/facet-value.model';
|
||||
import { ObjectCacheService } from '../cache/object-cache.service';
|
||||
import { FacetValueSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { BaseResponseParsingService } from './base-response-parsing.service';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
|
||||
@Injectable()
|
||||
export class FacetValueResponseParsingService extends BaseResponseParsingService implements ResponseParsingService {
|
||||
@@ -21,7 +21,7 @@ export class FacetValueResponseParsingService extends BaseResponseParsingService
|
||||
parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse {
|
||||
const payload = data.payload;
|
||||
|
||||
const serializer = new NormalizedObjectSerializer(FacetValue);
|
||||
const serializer = new DSpaceSerializer(FacetValue);
|
||||
// const values = payload._embedded.values.map((value) => {value.search = value._links.search.href; return value;});
|
||||
|
||||
const facetValues = serializer.deserializeArray(payload._embedded.values);
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { RestRequest } from './request.models';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MetadatafieldSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { MetadataField } from '../metadata/metadata-field.model';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
|
||||
/**
|
||||
* A service responsible for parsing DSpaceRESTV2Response data related to a single MetadataField to a valid RestResponse
|
||||
@@ -15,7 +15,7 @@ export class MetadatafieldParsingService implements ResponseParsingService {
|
||||
parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse {
|
||||
const payload = data.payload;
|
||||
|
||||
const deserialized = new NormalizedObjectSerializer(MetadataField).deserialize(payload);
|
||||
const deserialized = new DSpaceSerializer(MetadataField).deserialize(payload);
|
||||
return new MetadatafieldSuccessResponse(deserialized, data.statusCode, data.statusText);
|
||||
}
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { RestRequest } from './request.models';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { MetadataschemaSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { MetadataSchema } from '../metadata/metadata-schema.model';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
|
||||
@Injectable()
|
||||
export class MetadataschemaParsingService implements ResponseParsingService {
|
||||
@@ -12,7 +12,7 @@ export class MetadataschemaParsingService implements ResponseParsingService {
|
||||
parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse {
|
||||
const payload = data.payload;
|
||||
|
||||
const deserialized = new NormalizedObjectSerializer(MetadataSchema).deserialize(payload);
|
||||
const deserialized = new DSpaceSerializer(MetadataSchema).deserialize(payload);
|
||||
return new MetadataschemaSuccessResponse(deserialized, data.statusCode, data.statusText);
|
||||
}
|
||||
|
||||
|
@@ -56,14 +56,14 @@ export class PaginatedList<T> {
|
||||
}
|
||||
|
||||
set first(first: string) {
|
||||
this.pageInfo.first = first;
|
||||
this.pageInfo._links.first = { href: first };
|
||||
}
|
||||
|
||||
get prev(): string {
|
||||
return this.pageInfo.prev;
|
||||
}
|
||||
set prev(prev: string) {
|
||||
this.pageInfo.prev = prev;
|
||||
this.pageInfo._links.prev = { href: prev };
|
||||
}
|
||||
|
||||
get next(): string {
|
||||
@@ -71,7 +71,7 @@ export class PaginatedList<T> {
|
||||
}
|
||||
|
||||
set next(next: string) {
|
||||
this.pageInfo.next = next;
|
||||
this.pageInfo._links.next = { href: next };
|
||||
}
|
||||
|
||||
get last(): string {
|
||||
@@ -79,7 +79,7 @@ export class PaginatedList<T> {
|
||||
}
|
||||
|
||||
set last(last: string) {
|
||||
this.pageInfo.last = last;
|
||||
this.pageInfo._links.last = { href: last };
|
||||
}
|
||||
|
||||
get self(): string {
|
||||
@@ -87,7 +87,7 @@ export class PaginatedList<T> {
|
||||
}
|
||||
|
||||
set self(self: string) {
|
||||
this.pageInfo.self = self;
|
||||
this.pageInfo._links.self = { href: self };
|
||||
}
|
||||
|
||||
protected getPageLength() {
|
||||
|
@@ -1,11 +1,11 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { RegistryBitstreamformatsSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { RegistryBitstreamformatsResponse } from '../registry/registry-bitstreamformats-response.model';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { RestRequest } from './request.models';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { RegistryBitstreamformatsResponse } from '../registry/registry-bitstreamformats-response.model';
|
||||
import { DSOResponseParsingService } from './dso-response-parsing.service';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { RestRequest } from './request.models';
|
||||
|
||||
@Injectable()
|
||||
export class RegistryBitstreamformatsResponseParsingService implements ResponseParsingService {
|
||||
@@ -18,7 +18,7 @@ export class RegistryBitstreamformatsResponseParsingService implements ResponseP
|
||||
const bitstreamformats = payload._embedded.bitstreamformats;
|
||||
payload.bitstreamformats = bitstreamformats;
|
||||
|
||||
const deserialized = new NormalizedObjectSerializer(RegistryBitstreamformatsResponse).deserialize(payload);
|
||||
const deserialized = new DSpaceSerializer(RegistryBitstreamformatsResponse).deserialize(payload);
|
||||
return new RegistryBitstreamformatsSuccessResponse(deserialized, data.statusCode, data.statusText, this.dsoParser.processPageInfo(data.payload.page));
|
||||
}
|
||||
|
||||
|
@@ -1,15 +1,12 @@
|
||||
import {
|
||||
RegistryMetadatafieldsSuccessResponse,
|
||||
RestResponse
|
||||
} from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { RestRequest } from './request.models';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { DSOResponseParsingService } from './dso-response-parsing.service';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { RegistryMetadatafieldsResponse } from '../registry/registry-metadatafields-response.model';
|
||||
import { hasValue } from '../../shared/empty.util';
|
||||
import { RegistryMetadatafieldsSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { RegistryMetadatafieldsResponse } from '../registry/registry-metadatafields-response.model';
|
||||
import { DSOResponseParsingService } from './dso-response-parsing.service';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
|
||||
@Injectable()
|
||||
export class RegistryMetadatafieldsResponseParsingService implements ResponseParsingService {
|
||||
@@ -30,7 +27,7 @@ export class RegistryMetadatafieldsResponseParsingService implements ResponsePar
|
||||
|
||||
payload.metadatafields = metadatafields;
|
||||
|
||||
const deserialized = new NormalizedObjectSerializer(RegistryMetadatafieldsResponse).deserialize(payload);
|
||||
const deserialized = new DSpaceSerializer(RegistryMetadatafieldsResponse).deserialize(payload);
|
||||
return new RegistryMetadatafieldsSuccessResponse(deserialized, data.statusCode, data.statusText, this.dsoParser.processPageInfo(data.payload));
|
||||
}
|
||||
|
||||
|
@@ -1,12 +1,12 @@
|
||||
import { RegistryMetadataschemasSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { RestRequest } from './request.models';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RegistryMetadataschemasResponse } from '../registry/registry-metadataschemas-response.model';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { DSOResponseParsingService } from './dso-response-parsing.service';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { hasValue } from '../../shared/empty.util';
|
||||
import { RegistryMetadataschemasSuccessResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { RegistryMetadataschemasResponse } from '../registry/registry-metadataschemas-response.model';
|
||||
import { DSOResponseParsingService } from './dso-response-parsing.service';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
|
||||
@Injectable()
|
||||
export class RegistryMetadataschemasResponseParsingService implements ResponseParsingService {
|
||||
@@ -22,7 +22,7 @@ export class RegistryMetadataschemasResponseParsingService implements ResponsePa
|
||||
}
|
||||
payload.metadataschemas = metadataschemas;
|
||||
|
||||
const deserialized = new NormalizedObjectSerializer(RegistryMetadataschemasResponse).deserialize(payload);
|
||||
const deserialized = new DSpaceSerializer(RegistryMetadataschemasResponse).deserialize(payload);
|
||||
return new RegistryMetadataschemasSuccessResponse(deserialized, data.statusCode, data.statusText, this.dsoParser.processPageInfo(data.payload));
|
||||
}
|
||||
|
||||
|
@@ -1,12 +1,17 @@
|
||||
import { Observable, of as observableOf } from 'rxjs';
|
||||
import { Inject, Injectable, Injector } from '@angular/core';
|
||||
import { Actions, Effect, ofType } from '@ngrx/effects';
|
||||
import { Observable, of as observableOf } from 'rxjs';
|
||||
import { catchError, filter, flatMap, map, take } from 'rxjs/operators';
|
||||
|
||||
import { GLOBAL_CONFIG, GlobalConfig } from '../../../config';
|
||||
import { hasValue, isNotEmpty } from '../../shared/empty.util';
|
||||
import { StoreActionTypes } from '../../store.actions';
|
||||
import { getMapsToType } from '../cache/builders/build-decorators';
|
||||
import { ErrorResponse, RestResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
|
||||
import { DSpaceRESTv2Service } from '../dspace-rest-v2/dspace-rest-v2.service';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import {
|
||||
RequestActionTypes,
|
||||
RequestCompleteAction,
|
||||
@@ -16,11 +21,6 @@ import {
|
||||
import { RequestError, RestRequest } from './request.models';
|
||||
import { RequestEntry } from './request.reducer';
|
||||
import { RequestService } from './request.service';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { catchError, filter, flatMap, map, take, tap } from 'rxjs/operators';
|
||||
import { ErrorResponse, RestResponse } from '../cache/response.models';
|
||||
import { StoreActionTypes } from '../../store.actions';
|
||||
import { getMapsToType } from '../cache/builders/build-decorators';
|
||||
|
||||
export const addToResponseCacheAndCompleteAction = (request: RestRequest, envConfig: GlobalConfig) =>
|
||||
(source: Observable<RestResponse>): Observable<RequestCompleteAction> =>
|
||||
@@ -45,7 +45,7 @@ export class RequestEffects {
|
||||
flatMap((request: RestRequest) => {
|
||||
let body;
|
||||
if (isNotEmpty(request.body)) {
|
||||
const serializer = new NormalizedObjectSerializer(getMapsToType(request.body.type));
|
||||
const serializer = new DSpaceSerializer(getMapsToType(request.body.type));
|
||||
body = serializer.serialize(request.body);
|
||||
}
|
||||
return this.restApi.request(request.method, request.href, body, request.options).pipe(
|
||||
|
@@ -1,13 +1,13 @@
|
||||
import { Injectable } from '@angular/core';
|
||||
import { hasValue } from '../../shared/empty.util';
|
||||
import { SearchQueryResponse } from '../../shared/search/search-query-response.model';
|
||||
import { RestResponse, SearchSuccessResponse } from '../cache/response.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { MetadataMap, MetadataValue } from '../shared/metadata.models';
|
||||
import { DSOResponseParsingService } from './dso-response-parsing.service';
|
||||
import { ResponseParsingService } from './parsing.service';
|
||||
import { RestRequest } from './request.models';
|
||||
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { hasValue } from '../../shared/empty.util';
|
||||
import { SearchQueryResponse } from '../../shared/search/search-query-response.model';
|
||||
import { MetadataMap, MetadataValue } from '../shared/metadata.models';
|
||||
|
||||
@Injectable()
|
||||
export class SearchResponseParsingService implements ResponseParsingService {
|
||||
@@ -61,7 +61,7 @@ export class SearchResponseParsingService implements ResponseParsingService {
|
||||
hitHighlights: hitHighlights[index],
|
||||
}));
|
||||
payload.objects = objects;
|
||||
const deserialized = new NormalizedObjectSerializer(SearchQueryResponse).deserialize(payload);
|
||||
const deserialized = new DSpaceSerializer(SearchQueryResponse).deserialize(payload);
|
||||
return new SearchSuccessResponse(deserialized, data.statusCode, data.statusText, this.dsoParser.processPageInfo(payload));
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { autoserialize } from 'cerialize';
|
||||
import { autoserialize, deserialize } from 'cerialize';
|
||||
import { isNotEmpty } from '../../shared/empty.util';
|
||||
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
|
||||
import { link, resourceType } from '../cache/builders/build-decorators';
|
||||
@@ -9,7 +9,6 @@ import { ResourceType } from '../shared/resource-type';
|
||||
import { excludeFromEquals } from '../utilities/equals.decorators';
|
||||
import { METADATA_FIELD } from './metadata-field.resource-type';
|
||||
import { MetadataSchema } from './metadata-schema.model';
|
||||
import { METADATA_SCHEMA } from './metadata-schema.resource-type';
|
||||
|
||||
/**
|
||||
* Class the represents a metadata field
|
||||
@@ -28,41 +27,44 @@ export class MetadataField extends ListableObject implements HALResource {
|
||||
/**
|
||||
* The identifier of this metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
id: number;
|
||||
|
||||
/**
|
||||
* The self link of this metadata field
|
||||
*/
|
||||
self: string;
|
||||
|
||||
/**
|
||||
* The element of this metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
element: string;
|
||||
|
||||
/**
|
||||
* The qualifier of this metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
qualifier: string;
|
||||
|
||||
/**
|
||||
* The scope note of this metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
scopeNote: string;
|
||||
|
||||
/**
|
||||
* The HALLinks for this MetadataField
|
||||
*/
|
||||
@deserialize
|
||||
_links: {
|
||||
self: HALLink,
|
||||
schema: HALLink
|
||||
};
|
||||
|
||||
/**
|
||||
* The MetadataSchema for this MetadataField
|
||||
* Will be undefined unless the schema HALLink has been resolved.
|
||||
*/
|
||||
@link(METADATA_SCHEMA)
|
||||
// TODO the responseparsingservice assumes schemas are always embedded. This should be remotedata instead.
|
||||
// TODO the responseparsingservice assumes schemas are always embedded. This should use remotedata, and be a link instead.
|
||||
// @link(METADATA_SCHEMA)
|
||||
schema?: MetadataSchema;
|
||||
|
||||
_links: {
|
||||
self: HALLink,
|
||||
schema: HALLink
|
||||
};
|
||||
|
||||
/**
|
||||
* Method to print this metadata field as a string
|
||||
* @param separator The separator between the schema, element and qualifier in the string
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { autoserialize } from 'cerialize';
|
||||
import { autoserialize, deserialize } from 'cerialize';
|
||||
import { ListableObject } from '../../shared/object-collection/shared/listable-object.model';
|
||||
import { resourceType } from '../cache/builders/build-decorators';
|
||||
import { GenericConstructor } from '../shared/generic-constructor';
|
||||
@@ -18,6 +18,7 @@ export class MetadataSchema extends ListableObject implements HALResource {
|
||||
/**
|
||||
* The unique identifier for this metadata schema
|
||||
*/
|
||||
@autoserialize
|
||||
id: number;
|
||||
|
||||
/**
|
||||
@@ -30,13 +31,16 @@ export class MetadataSchema extends ListableObject implements HALResource {
|
||||
/**
|
||||
* A unique prefix that defines this schema
|
||||
*/
|
||||
@autoserialize
|
||||
prefix: string;
|
||||
|
||||
/**
|
||||
* The namespace of this metadata schema
|
||||
*/
|
||||
@autoserialize
|
||||
namespace: string;
|
||||
|
||||
@deserialize
|
||||
_links: {
|
||||
self: HALLink,
|
||||
};
|
||||
|
@@ -1,49 +0,0 @@
|
||||
import { autoserialize, deserialize, inheritSerialization } from 'cerialize';
|
||||
import { relationship } from '../cache/builders/build-decorators';
|
||||
import { MetadataField } from './metadata-field.model';
|
||||
import { NormalizedObject } from '../cache/models/normalized-object.model';
|
||||
import { MetadataSchema } from './metadata-schema.model';
|
||||
|
||||
/**
|
||||
* Class the represents a normalized metadata field
|
||||
*/
|
||||
@inheritSerialization(NormalizedObject)
|
||||
export class NormalizedMetadataField extends NormalizedObject<MetadataField> {
|
||||
|
||||
/**
|
||||
* The identifier of this normalized metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
id: number;
|
||||
|
||||
/**
|
||||
* The self link of this normalized metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
self: string;
|
||||
|
||||
/**
|
||||
* The element of this normalized metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
element: string;
|
||||
|
||||
/**
|
||||
* The qualifier of this normalized metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
qualifier: string;
|
||||
|
||||
/**
|
||||
* The scope note of this normalized metadata field
|
||||
*/
|
||||
@autoserialize
|
||||
scopeNote: string;
|
||||
|
||||
/**
|
||||
* The link to the metadata schema of this normalized metadata field
|
||||
*/
|
||||
@deserialize
|
||||
@relationship(MetadataSchema)
|
||||
schema: string;
|
||||
}
|
@@ -1,34 +0,0 @@
|
||||
import { autoserialize, inheritSerialization } from 'cerialize';
|
||||
import { NormalizedObject } from '../cache/models/normalized-object.model';
|
||||
import { MetadataSchema } from './metadata-schema.model';
|
||||
|
||||
/**
|
||||
* Normalized class for a DSpace MetadataSchema
|
||||
*/
|
||||
@inheritSerialization(NormalizedObject)
|
||||
export class NormalizedMetadataSchema extends NormalizedObject<MetadataSchema> {
|
||||
/**
|
||||
* The unique identifier for this schema
|
||||
*/
|
||||
@autoserialize
|
||||
id: number;
|
||||
|
||||
/**
|
||||
* The REST link to itself
|
||||
*/
|
||||
@autoserialize
|
||||
self: string;
|
||||
|
||||
/**
|
||||
* A unique prefix that defines this schema
|
||||
*/
|
||||
@autoserialize
|
||||
prefix: string;
|
||||
|
||||
/**
|
||||
* The namespace for this schema
|
||||
*/
|
||||
@autoserialize
|
||||
namespace: string;
|
||||
|
||||
}
|
@@ -2,6 +2,7 @@ import { combineLatest as observableCombineLatest, Observable } from 'rxjs';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { RemoteData } from '../data/remote-data';
|
||||
import { PaginatedList } from '../data/paginated-list';
|
||||
import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer';
|
||||
import { PageInfo } from '../shared/page-info.model';
|
||||
import {
|
||||
CreateMetadataFieldRequest,
|
||||
@@ -48,8 +49,6 @@ import {
|
||||
MetadataRegistrySelectSchemaAction
|
||||
} from '../../+admin/admin-registries/metadata-registry/metadata-registry.actions';
|
||||
import { distinctUntilChanged, flatMap, map, take, tap } from 'rxjs/operators';
|
||||
import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer';
|
||||
import { NormalizedMetadataSchema } from '../metadata/normalized-metadata-schema.model';
|
||||
import { NotificationsService } from '../../shared/notifications/notifications.service';
|
||||
import { NotificationOptions } from '../../shared/notifications/models/notification-options.model';
|
||||
import { HttpOptions } from '../dspace-rest-v2/dspace-rest-v2.service';
|
||||
@@ -400,7 +399,7 @@ export class RegistryService {
|
||||
distinctUntilChanged()
|
||||
);
|
||||
|
||||
const serializedSchema = new NormalizedObjectSerializer(getMapsToType(MetadataSchema.type)).serialize(schema);
|
||||
const serializedSchema = new DSpaceSerializer(getMapsToType(MetadataSchema.type)).serialize(schema);
|
||||
|
||||
const request$ = endpoint$.pipe(
|
||||
take(1),
|
||||
|
@@ -1,4 +1,6 @@
|
||||
import { autoserialize, autoserializeAs, deserializeAs, deserialize } from 'cerialize';
|
||||
import { HALLink } from './hal-link.model';
|
||||
import { HALResource } from './hal-resource.model';
|
||||
import { MetadataConfig } from './metadata-config.model';
|
||||
|
||||
/**
|
||||
@@ -14,7 +16,7 @@ export enum ContentSourceHarvestType {
|
||||
/**
|
||||
* A model class that holds information about the Content Source of a Collection
|
||||
*/
|
||||
export class ContentSource {
|
||||
export class ContentSource implements HALResource{
|
||||
/**
|
||||
* Unique identifier, this is necessary to store the ContentSource in FieldUpdates
|
||||
* Because the ContentSource coming from the REST API doesn't have a UUID, we're using the selflink
|
||||
@@ -53,8 +55,10 @@ export class ContentSource {
|
||||
metadataConfigs: MetadataConfig[];
|
||||
|
||||
/**
|
||||
* The REST link to itself
|
||||
* The HALLinks for this ContentSource
|
||||
*/
|
||||
@deserialize
|
||||
self: string;
|
||||
_links: {
|
||||
self: HALLink
|
||||
}
|
||||
}
|
||||
|
@@ -1,10 +1,12 @@
|
||||
import { autoserialize, autoserializeAs } from 'cerialize';
|
||||
import { autoserialize, autoserializeAs, deserialize } from 'cerialize';
|
||||
import { hasValue } from '../../shared/empty.util';
|
||||
import { HALLink } from './hal-link.model';
|
||||
import { HALResource } from './hal-resource.model';
|
||||
|
||||
/**
|
||||
* Represents the state of a paginated response
|
||||
*/
|
||||
export class PageInfo {
|
||||
export class PageInfo implements HALResource {
|
||||
|
||||
/**
|
||||
* The number of elements on a page
|
||||
@@ -30,20 +32,17 @@ export class PageInfo {
|
||||
@autoserializeAs(Number, 'number')
|
||||
currentPage: number;
|
||||
|
||||
@autoserialize
|
||||
last: string;
|
||||
|
||||
@autoserialize
|
||||
next: string;
|
||||
|
||||
@autoserialize
|
||||
prev: string;
|
||||
|
||||
@autoserialize
|
||||
first: string;
|
||||
|
||||
@autoserialize
|
||||
self: string;
|
||||
/**
|
||||
* The HALLinks for this PageInfo
|
||||
*/
|
||||
@deserialize
|
||||
_links: {
|
||||
first: HALLink;
|
||||
prev: HALLink;
|
||||
next: HALLink;
|
||||
last: HALLink;
|
||||
self: HALLink;
|
||||
};
|
||||
|
||||
constructor(
|
||||
options?: {
|
||||
@@ -60,4 +59,41 @@ export class PageInfo {
|
||||
this.currentPage = options.currentPage;
|
||||
}
|
||||
}
|
||||
|
||||
get self() {
|
||||
return this._links.self.href;
|
||||
}
|
||||
|
||||
get last(): string {
|
||||
if (hasValue(this._links.last)) {
|
||||
return this._links.last.href;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
get next(): string {
|
||||
if (hasValue(this._links.next)) {
|
||||
return this._links.next.href;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
get prev(): string {
|
||||
if (hasValue(this._links.prev)) {
|
||||
return this._links.prev.href;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
get first(): string {
|
||||
if (hasValue(this._links.first)) {
|
||||
return this._links.first.href;
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,21 +0,0 @@
|
||||
import { autoserialize, inheritSerialization } from 'cerialize';
|
||||
import { MetadataMap } from '../../core/shared/metadata.models';
|
||||
import { NormalizedObject } from '../../core/cache/models/normalized-object.model';
|
||||
|
||||
/**
|
||||
* Represents a normalized version of a search result object of a certain DSpaceObject
|
||||
*/
|
||||
@inheritSerialization(NormalizedObject)
|
||||
export class NormalizedSearchResult {
|
||||
/**
|
||||
* The UUID of the DSpaceObject that was found
|
||||
*/
|
||||
@autoserialize
|
||||
indexableObject: string;
|
||||
|
||||
/**
|
||||
* The metadata that was used to find this item, hithighlighted
|
||||
*/
|
||||
@autoserialize
|
||||
hitHighlights: MetadataMap;
|
||||
}
|
Reference in New Issue
Block a user