Skip to content
Snippets Groups Projects
Commit 7b3e82c5 authored by Kristof De Langhe's avatar Kristof De Langhe
Browse files

54472: Removed SingleDsoSuccessResponse and replaced by GenericSuccessResponse

parent 2f139c5c
No related branches found
No related tags found
No related merge requests found
......@@ -13,6 +13,7 @@ import { ResponseCacheEntry } from '../../core/cache/response-cache.reducer';
import { map } from 'rxjs/operators';
import { RemoteData } from '../../core/data/remote-data';
import { isNotEmpty } from '../../shared/empty.util';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
@Component({
selector: 'ds-create-collection',
......@@ -50,7 +51,7 @@ export class CreateCollectionPageComponent {
uuid: uuid
})))
});
this.collectionDataService.create(collection).subscribe((rd: RemoteData<Collection>) => {
this.collectionDataService.create(collection).subscribe((rd: RemoteData<DSpaceObject>) => {
console.log(rd);
if (rd.hasSucceeded) {
this.router.navigateByUrl('');
......
......@@ -7,6 +7,7 @@ import { RouteService } from '../../shared/services/route.service';
import { Router } from '@angular/router';
import { RemoteData } from '../../core/data/remote-data';
import { isNotEmpty } from '../../shared/empty.util';
import { DSpaceObject } from '../../core/shared/dspace-object.model';
@Component({
selector: 'ds-create-community',
......@@ -43,7 +44,7 @@ export class CreateCommunityPageComponent {
uuid: uuid
})))
});
this.communityDataService.create(community).subscribe((rd: RemoteData<Community>) => {
this.communityDataService.create(community).subscribe((rd: RemoteData<DSpaceObject>) => {
console.log(rd);
if (rd.hasSucceeded) {
this.router.navigateByUrl('');
......
......@@ -33,16 +33,6 @@ export class DSOSuccessResponse extends RestResponse {
}
}
export class SingleDSOSuccessResponse extends DSOSuccessResponse {
constructor(
public resourceSelfLinks: string[],
public statusCode: string,
public dso: DSpaceObject
) {
super(resourceSelfLinks, statusCode);
}
}
export class RegistryMetadataschemasSuccessResponse extends RestResponse {
constructor(
public metadataschemasResponse: RegistryMetadataschemasResponse,
......
......@@ -28,7 +28,7 @@ import {
import { ResponseCacheEntry } from '../cache/response-cache.reducer';
import { HttpOptions } from '../dspace-rest-v2/dspace-rest-v2.service';
import { HttpHeaders } from '@angular/common/http';
import { DSOSuccessResponse, SingleDSOSuccessResponse } from '../cache/response-cache.models';
import { DSOSuccessResponse, GenericSuccessResponse } from '../cache/response-cache.models';
import { AuthService } from '../auth/auth.service';
import { DSpaceObject } from '../shared/dspace-object.model';
......@@ -115,7 +115,7 @@ export abstract class DataService<TNormalized extends NormalizedObject, TDomain>
return this.rdbService.buildSingle<TNormalized, TDomain>(href);
}
public create(dso: TDomain): Observable<RemoteData<DSpaceObject>> {
public create(dso: TDomain): Observable<RemoteData<TDomain>> {
const request$ = this.halService.getEndpoint(this.linkPath).pipe(
isNotEmptyOperator(),
distinctUntilChanged(),
......@@ -138,10 +138,12 @@ export abstract class DataService<TNormalized extends NormalizedObject, TDomain>
const payload$ = responseCache$.pipe(
filterSuccessfulResponses(),
map((entry: ResponseCacheEntry) => entry.response),
map((response: SingleDSOSuccessResponse) => response.dso),
map((response: GenericSuccessResponse<TDomain>) => response.payload),
distinctUntilChanged()
);
payload$.subscribe((value) => console.log(value));
return this.rdbService.toRemoteDataObservable(requestEntry$, responseCache$, payload$);
}
......
......@@ -6,7 +6,11 @@ import { GLOBAL_CONFIG } from '../../../config';
import { ObjectCacheService } from '../cache/object-cache.service';
import { RestRequest } from './request.models';
import { DSpaceRESTV2Response } from '../dspace-rest-v2/dspace-rest-v2-response.model';
import { DSOSuccessResponse, RestResponse, SingleDSOSuccessResponse } from '../cache/response-cache.models';
import {
DSOSuccessResponse,
GenericSuccessResponse,
RestResponse
} from '../cache/response-cache.models';
import { NormalizedObjectFactory } from '../cache/models/normalized-object-factory';
import { DSpaceRESTv2Serializer } from '../dspace-rest-v2/dspace-rest-v2.serializer';
import { DSpaceObject } from '../shared/dspace-object.model';
......@@ -28,16 +32,9 @@ export class SingleDsoResponseParsingService extends BaseResponseParsingService
parse(request: RestRequest, data: DSpaceRESTV2Response): RestResponse {
const processRequestDTO = this.process<NormalizedObject,ResourceType>(data.payload, request.href);
if (hasNoValue(processRequestDTO)) {
return new SingleDSOSuccessResponse([], data.statusCode, undefined)
return new GenericSuccessResponse<DSpaceObject>(undefined, data.statusCode)
}
let objectList = processRequestDTO;
if (hasValue(processRequestDTO.page)) {
objectList = processRequestDTO.page;
} else if (!Array.isArray(processRequestDTO)) {
objectList = [processRequestDTO];
}
const selfLinks = objectList.map((no) => no.self);
return new SingleDSOSuccessResponse(selfLinks, data.statusCode, processRequestDTO);
return new GenericSuccessResponse<DSpaceObject>(processRequestDTO, data.statusCode);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment