Fix issue where FetchAllFluxServices did not return services on await
Co-authored-by: Jared Scheib <jared.scheib@gmail.com>pull/4082/head
parent
10d24997d0
commit
82263fe3a1
|
@ -136,17 +136,27 @@ export type FetchAllFluxServicesAsync = (
|
||||||
export const fetchAllFluxServicesAsync: FetchAllFluxServicesAsync = sources => async (
|
export const fetchAllFluxServicesAsync: FetchAllFluxServicesAsync = sources => async (
|
||||||
dispatch
|
dispatch
|
||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
const allServices: Service[] = []
|
const allServicesForSources: Array<Promise<Service[]>> = sources.map(
|
||||||
sources.forEach(async source => {
|
async source => {
|
||||||
try {
|
try {
|
||||||
const services = await getServicesAJAX(source.links.services)
|
return getServicesAJAX(source.links.services)
|
||||||
const fluxServices = services.filter(s => s.type === 'flux')
|
} catch (err) {
|
||||||
allServices.push(...fluxServices)
|
dispatch(notify(couldNotGetServices))
|
||||||
} catch (err) {
|
}
|
||||||
dispatch(notify(couldNotGetServices))
|
|
||||||
}
|
}
|
||||||
})
|
)
|
||||||
dispatch(loadServices(allServices))
|
|
||||||
|
try {
|
||||||
|
const sourceServices = await Promise.all(allServicesForSources)
|
||||||
|
const flat = sourceServices.reduce((acc, cur) => {
|
||||||
|
return [...acc, ...cur.filter(s => s.type === 'flux')]
|
||||||
|
})
|
||||||
|
dispatch(loadServices(flat))
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err.data)
|
||||||
|
dispatch(notify(couldNotGetServices))
|
||||||
|
throw err.data
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export type FetchFluxServicesForSourceAsync = (
|
export type FetchFluxServicesForSourceAsync = (
|
||||||
|
@ -160,7 +170,9 @@ export const fetchFluxServicesForSourceAsync: FetchFluxServicesForSourceAsync =
|
||||||
const fluxServices = services.filter(s => s.type === 'flux')
|
const fluxServices = services.filter(s => s.type === 'flux')
|
||||||
dispatch(loadServices(fluxServices))
|
dispatch(loadServices(fluxServices))
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
console.error(err.data)
|
||||||
dispatch(notify(couldNotGetServices))
|
dispatch(notify(couldNotGetServices))
|
||||||
|
throw err.data
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue