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

54472: Intermediate commit

parent 0197b4a9
Branches
Tags
No related merge requests found
...@@ -66,20 +66,4 @@ export abstract class ComColDataService<TNormalized extends NormalizedObject, TD ...@@ -66,20 +66,4 @@ export abstract class ComColDataService<TNormalized extends NormalizedObject, TD
} }
} }
public buildFormData(comcol, parentUUID): FormData {
const form: FormData = new FormData();
form.append('name', comcol.name);
if (isNotEmpty(parentUUID)) {
form.append('parent', parentUUID);
}
if (comcol.metadata) {
for (const i of Object.keys(comcol.metadata)) {
if (isNotEmpty(comcol.metadata[i].value)) {
form.append(comcol.metadata[i].key, comcol.metadata[i].value);
}
}
}
return form;
}
} }
...@@ -121,12 +121,13 @@ export abstract class DataService<TNormalized extends NormalizedObject, TDomain> ...@@ -121,12 +121,13 @@ export abstract class DataService<TNormalized extends NormalizedObject, TDomain>
const requestId = this.requestService.generateRequestId(); const requestId = this.requestService.generateRequestId();
const endpoint$ = this.halService.getEndpoint(this.linkPath).pipe( const endpoint$ = this.halService.getEndpoint(this.linkPath).pipe(
isNotEmptyOperator(), isNotEmptyOperator(),
distinctUntilChanged() distinctUntilChanged(),
map((endpoint: string) => parentUUID ? `${endpoint}?parent=${parentUUID}` : endpoint)
); );
const request$ = endpoint$.pipe( const request$ = endpoint$.pipe(
take(1), take(1),
map((endpoint: string) => new CreateRequest(requestId, endpoint, this.buildFormData(dso, parentUUID))), map((endpoint: string) => new CreateRequest(requestId, endpoint, dso)),
configureRequest(this.requestService) configureRequest(this.requestService)
); );
...@@ -153,6 +154,4 @@ export abstract class DataService<TNormalized extends NormalizedObject, TDomain> ...@@ -153,6 +154,4 @@ export abstract class DataService<TNormalized extends NormalizedObject, TDomain>
return this.rdbService.toRemoteDataObservable(requestEntry$, responseCache$, payload$); return this.rdbService.toRemoteDataObservable(requestEntry$, responseCache$, payload$);
} }
public abstract buildFormData(dso: TDomain, parentUUID: string): FormData;
} }
...@@ -37,10 +37,6 @@ class DataServiceImpl extends DataService<NormalizedDSpaceObject, DSpaceObject> ...@@ -37,10 +37,6 @@ class DataServiceImpl extends DataService<NormalizedDSpaceObject, DSpaceObject>
getFindByIDHref(endpoint, resourceID): string { getFindByIDHref(endpoint, resourceID): string {
return endpoint.replace(/\{\?uuid\}/,`?uuid=${resourceID}`); return endpoint.replace(/\{\?uuid\}/,`?uuid=${resourceID}`);
} }
buildFormData(dso: DSpaceObject, parentUUID: string): FormData {
return undefined;
}
} }
@Injectable() @Injectable()
......
...@@ -47,9 +47,4 @@ export class ItemDataService extends DataService<NormalizedItem, Item> { ...@@ -47,9 +47,4 @@ export class ItemDataService extends DataService<NormalizedItem, Item> {
} }
} }
buildFormData(dso: Item, parentUUID: string): FormData {
// TODO: build FormData for creating an Item
return undefined;
}
} }
...@@ -38,7 +38,7 @@ export class RequestEffects { ...@@ -38,7 +38,7 @@ export class RequestEffects {
}), }),
map((entry: RequestEntry) => entry.request), map((entry: RequestEntry) => entry.request),
flatMap((request: RestRequest) => { flatMap((request: RestRequest) => {
let body = request.body; let body;
if (isNotEmpty(request.body)) { if (isNotEmpty(request.body)) {
const serializer = new DSpaceRESTv2Serializer(NormalizedObjectFactory.getConstructor(request.body.type)); const serializer = new DSpaceRESTv2Serializer(NormalizedObjectFactory.getConstructor(request.body.type));
body = serializer.serialize(request.body); body = serializer.serialize(request.body);
......
...@@ -6,6 +6,8 @@ import { RestRequestMethod } from '../data/request.models'; ...@@ -6,6 +6,8 @@ import { RestRequestMethod } from '../data/request.models';
import { DSpaceRESTV2Response } from './dspace-rest-v2-response.model'; import { DSpaceRESTV2Response } from './dspace-rest-v2-response.model';
import { HttpObserve } from '@angular/common/http/src/client'; import { HttpObserve } from '@angular/common/http/src/client';
import { isNotEmpty } from '../../shared/empty.util';
import { DSpaceObject } from '../shared/dspace-object.model';
export interface HttpOptions { export interface HttpOptions {
body?: any; body?: any;
...@@ -59,6 +61,9 @@ export class DSpaceRESTv2Service { ...@@ -59,6 +61,9 @@ export class DSpaceRESTv2Service {
request(method: RestRequestMethod, url: string, body?: any, options?: HttpOptions): Observable<DSpaceRESTV2Response> { request(method: RestRequestMethod, url: string, body?: any, options?: HttpOptions): Observable<DSpaceRESTV2Response> {
const requestOptions: HttpOptions = {}; const requestOptions: HttpOptions = {};
requestOptions.body = body; requestOptions.body = body;
if (method === RestRequestMethod.Post && isNotEmpty(body)) {
requestOptions.body = this.buildFormData(body);
}
requestOptions.observe = 'response'; requestOptions.observe = 'response';
if (options && options.headers) { if (options && options.headers) {
requestOptions.headers = Object.assign(new HttpHeaders(), options.headers); requestOptions.headers = Object.assign(new HttpHeaders(), options.headers);
...@@ -74,4 +79,17 @@ export class DSpaceRESTv2Service { ...@@ -74,4 +79,17 @@ export class DSpaceRESTv2Service {
}); });
} }
buildFormData(dso: DSpaceObject): FormData {
const form: FormData = new FormData();
form.append('name', dso.name);
if (dso.metadata) {
for (const i of Object.keys(dso.metadata)) {
if (isNotEmpty(dso.metadata[i].value)) {
form.append(dso.metadata[i].key, dso.metadata[i].value);
}
}
}
return form;
}
} }
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment