From b9432e7553b738eda0d3998e726c5090b4fdf348 Mon Sep 17 00:00:00 2001 From: Art Lowel Date: Thu, 13 Feb 2020 11:31:54 +0100 Subject: [PATCH] fix browse pages --- ...browse-entries-response-parsing.service.ts | 6 ++-- .../browse-items-response-parsing-service.ts | 7 ++-- .../data/browse-response-parsing.service.ts | 12 +++---- src/app/core/shared/browse-entry.model.ts | 7 +++- .../shared/normalized-browse-entry.model.ts | 33 ------------------- 5 files changed, 18 insertions(+), 47 deletions(-) delete mode 100644 src/app/core/shared/normalized-browse-entry.model.ts diff --git a/src/app/core/data/browse-entries-response-parsing.service.ts b/src/app/core/data/browse-entries-response-parsing.service.ts index e8d1fbb15c..ec35b8cc75 100644 --- a/src/app/core/data/browse-entries-response-parsing.service.ts +++ b/src/app/core/data/browse-entries-response-parsing.service.ts @@ -5,11 +5,11 @@ import { isNotEmpty } from '../../shared/empty.util'; import { ObjectCacheService } from '../cache/object-cache.service'; import { ErrorResponse, GenericSuccessResponse, RestResponse } from '../cache/response.models'; import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model'; -import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer'; +import { DSpaceSerializer } from '../dspace-rest-v2/dspace.serializer'; +import { BrowseEntry } from '../shared/browse-entry.model'; import { BaseResponseParsingService } from './base-response-parsing.service'; import { ResponseParsingService } from './parsing.service'; import { RestRequest } from './request.models'; -import { NormalizedBrowseEntry } from '../shared/normalized-browse-entry.model'; @Injectable() export class BrowseEntriesResponseParsingService extends BaseResponseParsingService implements ResponseParsingService { @@ -26,7 +26,7 @@ export class BrowseEntriesResponseParsingService extends BaseResponseParsingServ if (isNotEmpty(data.payload)) { let browseEntries = []; if (isNotEmpty(data.payload._embedded) && Array.isArray(data.payload._embedded[Object.keys(data.payload._embedded)[0]])) { - const serializer = new NormalizedObjectSerializer(NormalizedBrowseEntry); + const serializer = new DSpaceSerializer(BrowseEntry); browseEntries = serializer.deserializeArray(data.payload._embedded[Object.keys(data.payload._embedded)[0]]); } return new GenericSuccessResponse(browseEntries, data.statusCode, data.statusText, this.processPageInfo(data.payload)); diff --git a/src/app/core/data/browse-items-response-parsing-service.ts b/src/app/core/data/browse-items-response-parsing-service.ts index 82438c7fcb..c8a432b3e5 100644 --- a/src/app/core/data/browse-items-response-parsing-service.ts +++ b/src/app/core/data/browse-items-response-parsing-service.ts @@ -3,15 +3,14 @@ import { Inject, Injectable } from '@angular/core'; import { GLOBAL_CONFIG } from '../../../config'; import { GlobalConfig } from '../../../config/global-config.interface'; import { hasValue, isNotEmpty } from '../../shared/empty.util'; +import { NormalizedDSpaceObject } from '../cache/models/normalized-dspace-object.model'; import { ObjectCacheService } from '../cache/object-cache.service'; import { ErrorResponse, GenericSuccessResponse, RestResponse } from '../cache/response.models'; import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model'; -import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer'; +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 { DSpaceObject } from '../shared/dspace-object.model'; -import { NormalizedDSpaceObject } from '../cache/models/normalized-dspace-object.model'; /** * A ResponseParsingService used to parse DSpaceRESTV2Response coming from the REST API to Browse Items (DSpaceObject[]) @@ -35,7 +34,7 @@ export class BrowseItemsResponseParsingService extends BaseResponseParsingServic parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse { if (isNotEmpty(data.payload) && isNotEmpty(data.payload._embedded) && Array.isArray(data.payload._embedded[Object.keys(data.payload._embedded)[0]])) { - const serializer = new NormalizedObjectSerializer(NormalizedDSpaceObject); + const serializer = new DSpaceSerializer(NormalizedDSpaceObject); const items = serializer.deserializeArray(data.payload._embedded[Object.keys(data.payload._embedded)[0]]); return new GenericSuccessResponse(items, data.statusCode, data.statusText, this.processPageInfo(data.payload)); } else if (hasValue(data.payload) && hasValue(data.payload.page)) { diff --git a/src/app/core/data/browse-response-parsing.service.ts b/src/app/core/data/browse-response-parsing.service.ts index 08d2f8f04b..d1b9c2f15c 100644 --- a/src/app/core/data/browse-response-parsing.service.ts +++ b/src/app/core/data/browse-response-parsing.service.ts @@ -1,11 +1,11 @@ import { Injectable } from '@angular/core'; +import { isNotEmpty } from '../../shared/empty.util'; +import { ErrorResponse, GenericSuccessResponse, 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 { BrowseDefinition } from '../shared/browse-definition.model'; import { ResponseParsingService } from './parsing.service'; import { RestRequest } from './request.models'; -import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model'; -import { GenericSuccessResponse, ErrorResponse, RestResponse } from '../cache/response.models'; -import { isNotEmpty } from '../../shared/empty.util'; -import { NormalizedObjectSerializer } from '../dspace-rest-v2/normalized-object.serializer'; -import { BrowseDefinition } from '../shared/browse-definition.model'; @Injectable() export class BrowseResponseParsingService implements ResponseParsingService { @@ -13,7 +13,7 @@ export class BrowseResponseParsingService implements ResponseParsingService { parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse { if (isNotEmpty(data.payload) && isNotEmpty(data.payload._embedded) && Array.isArray(data.payload._embedded[Object.keys(data.payload._embedded)[0]])) { - const serializer = new NormalizedObjectSerializer(BrowseDefinition); + const serializer = new DSpaceSerializer(BrowseDefinition); const browseDefinitions = serializer.deserializeArray(data.payload._embedded[Object.keys(data.payload._embedded)[0]]); return new GenericSuccessResponse(browseDefinitions, data.statusCode, data.statusText); } else { diff --git a/src/app/core/shared/browse-entry.model.ts b/src/app/core/shared/browse-entry.model.ts index 06b4f88a86..0ce9e8b9bd 100644 --- a/src/app/core/shared/browse-entry.model.ts +++ b/src/app/core/shared/browse-entry.model.ts @@ -1,4 +1,4 @@ -import { autoserialize } from 'cerialize'; +import { autoserialize, autoserializeAs, deserialize } from 'cerialize'; import { ListableObject } from '../../shared/object-collection/shared/listable-object.model'; import { resourceType } from '../cache/builders/build-decorators'; import { TypedObject } from '../cache/object-cache.reducer'; @@ -26,24 +26,29 @@ export class BrowseEntry extends ListableObject implements TypedObject { /** * The authority string of this browse entry */ + @autoserialize authority: string; /** * The value of this browse entry */ + @autoserialize value: string; /** * The language of the value of this browse entry */ + @autoserializeAs('valueLang') language: string; /** * The count of this browse entry */ @excludeFromEquals + @autoserialize count: number; + @deserialize _links: { self: HALLink; entries: HALLink; diff --git a/src/app/core/shared/normalized-browse-entry.model.ts b/src/app/core/shared/normalized-browse-entry.model.ts deleted file mode 100644 index bad0a0260e..0000000000 --- a/src/app/core/shared/normalized-browse-entry.model.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { autoserialize, autoserializeAs, inheritSerialization } from 'cerialize'; -import { BrowseEntry } from './browse-entry.model'; -import { NormalizedObject } from '../cache/models/normalized-object.model'; -/** - * Class object representing a browse entry - * This class is not normalized because browse entries do not have self links - */ -@inheritSerialization(NormalizedObject) -export class NormalizedBrowseEntry extends NormalizedObject { - /** - * The authority string of this browse entry - */ - @autoserialize - authority: string; - - /** - * The value of this browse entry - */ - @autoserialize - value: string; - - /** - * The language of the value of this browse entry - */ - @autoserializeAs('valueLang') - language: string; - - /** - * The count of this browse entry - */ - @autoserialize - count: number; -}