Files
dspace-angular/src/app/core/data/facet-value-response-parsing.service.ts

21 lines
1.1 KiB
TypeScript

import { Injectable } from '@angular/core';
import { FacetValue } from '../../shared/search/facet-value.model';
import { ParsedResponse } from '../cache/response.models';
import { RawRestResponse } from '../dspace-rest/raw-rest-response.model';
import { DSpaceSerializer } from '../dspace-rest/dspace.serializer';
import { FacetValues } from '../../shared/search/facet-values.model';
import { DspaceRestResponseParsingService } from './dspace-rest-response-parsing.service';
import { RestRequest } from './rest-request.model';
@Injectable()
export class FacetValueResponseParsingService extends DspaceRestResponseParsingService {
parse(request: RestRequest, data: RawRestResponse): ParsedResponse {
const payload = data.payload;
const facetValues = new DSpaceSerializer(FacetValues).deserialize(payload);
facetValues.pageInfo = this.processPageInfo(payload);
facetValues.page = new DSpaceSerializer(FacetValue).deserializeArray(payload._embedded.values);
this.addToObjectCache(facetValues, request, data);
return new ParsedResponse(data.statusCode, facetValues._links.self);
}
}