mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-18 15:33:04 +00:00
adapted remote data build method to aggregate relation remotedata arrays
This commit is contained in:

committed by
Lotte Hofstede

parent
2b74c3034a
commit
fbb64a6031
@@ -134,9 +134,12 @@ export class RemoteDataBuildService {
|
||||
});
|
||||
}, 0);
|
||||
|
||||
links[relationship] = normalized[relationship].map((href: string) => {
|
||||
return this.buildSingle(href, resourceConstructor);
|
||||
let rdArr = [];
|
||||
normalized[relationship].forEach((href: string) => {
|
||||
rdArr.push(this.buildSingle(href, resourceConstructor));
|
||||
});
|
||||
|
||||
links[relationship] = this.aggregate(rdArr);
|
||||
}
|
||||
else {
|
||||
// without the setTimeout, the actions inside requestService.configure
|
||||
@@ -155,29 +158,33 @@ export class RemoteDataBuildService {
|
||||
}
|
||||
|
||||
aggregate<T>(input: RemoteData<T>[]): RemoteData<T[]> {
|
||||
const requestPending: Observable<boolean> = <Observable<boolean>> Observable.combineLatest(
|
||||
const requestPending = Observable.combineLatest(
|
||||
...input.map(rd => rd.isRequestPending),
|
||||
(...pendingArray) => pendingArray.every(e => e === true)
|
||||
).distinctUntilChanged();
|
||||
const responsePending: Observable<boolean> = <Observable<boolean>> Observable.combineLatest(
|
||||
).map((...pendingArray) => pendingArray.every(e => e === true))
|
||||
.distinctUntilChanged();
|
||||
|
||||
const responsePending = Observable.combineLatest(
|
||||
...input.map(rd => rd.isResponsePending),
|
||||
(...pendingArray) => pendingArray.every(e => e === true)
|
||||
).distinctUntilChanged();
|
||||
const isSuccessFul: Observable<boolean> = <Observable<boolean>> Observable.combineLatest(
|
||||
).map((...pendingArray) => pendingArray.every(e => e === true))
|
||||
.distinctUntilChanged();
|
||||
|
||||
const isSuccessFul = Observable.combineLatest(
|
||||
...input.map(rd => rd.hasSucceeded),
|
||||
(...successArray) => successArray.every(e => e === true)
|
||||
).distinctUntilChanged();
|
||||
const errorMessage: Observable<string> = <Observable<string>> Observable.combineLatest(
|
||||
).map((...successArray) => successArray.every(e => e === true))
|
||||
.distinctUntilChanged();
|
||||
|
||||
const errorMessage = Observable.combineLatest(
|
||||
...input.map(rd => rd.errorMessage),
|
||||
(...errors) => errors
|
||||
.map((e, idx) => {
|
||||
if (hasValue(e)) {
|
||||
return `[${idx}]: ${e}`;
|
||||
}
|
||||
})
|
||||
.filter(e => hasValue(e))
|
||||
.join(", ")
|
||||
).map((...errors) => errors
|
||||
.map((e, idx) => {
|
||||
if (hasValue(e)) {
|
||||
return `[${idx}]: ${e}`;
|
||||
}
|
||||
})
|
||||
.filter(e => hasValue(e))
|
||||
.join(", ")
|
||||
);
|
||||
|
||||
const payload = <Observable<T[]>> Observable.combineLatest(
|
||||
...input.map(rd => rd.payload)
|
||||
);
|
||||
|
Reference in New Issue
Block a user