aretherecookies-mobile/js/streams/FoodItemsStream.js
2017-11-11 20:15:19 -06:00

15 lines
644 B
JavaScript

//@flow
import { createFoodItem } from '../records/FoodItemRecord';
import { setById } from '../helpers/ImmutableHelpers';
import { Map } from 'immutable';
import location$ from './LocationStream';
import { getFoodItems, type FoodItemsForLocation } from '../apis/FoodItemsApi';
import FilterSubject from './FilterStream';
import FilterRecord from '../records/FilterRecord';
export default location$
.combineLatest(FilterSubject)
.mergeMap(([loc, filter]: [Position, FilterRecord]) => getFoodItems({ loc, filter }))
.map(({ fooditems = [] }: FoodItemsForLocation) => {
return fooditems.map(createFoodItem).reduce(setById, new Map());
});