33 lines
956 B
JavaScript
33 lines
956 B
JavaScript
import { Map } from 'immutable';
|
|
import Target from 'Types/target';
|
|
import { RequestTypes } from 'Duck/requestStateCreator';
|
|
import crudDuckGenerator from 'Duck/tools/crudDuck';
|
|
import { reduceDucks } from 'Duck/tools';
|
|
|
|
const FETCH_DEFINED = new RequestTypes('targets/FETCH_DEFINED');
|
|
|
|
const initialState = Map({
|
|
definedPercent: 0,
|
|
});
|
|
|
|
const reducer = (state = initialState, action = {}) => {
|
|
switch (action.type) {
|
|
case FETCH_DEFINED.SUCCESS:
|
|
return state.set(
|
|
'definedPercent',
|
|
Math.round((action.data.labeled / action.data.total) * 100),
|
|
);
|
|
}
|
|
return state;
|
|
};
|
|
|
|
const crudDuck = crudDuckGenerator('target', Target);
|
|
export const { fetchList, init, edit, save, remove } = crudDuck.actions;
|
|
export default reduceDucks(crudDuck, { initialState, reducer }).reducer;
|
|
|
|
export function fetchDefinedTargetsCount() {
|
|
return {
|
|
types: FETCH_DEFINED.toArray(),
|
|
call: client => client.get('/targets/count'),
|
|
};
|
|
}
|