LearnersGuild/echo

View on GitHub
src/common/reducers/chapters.js

Summary

Maintainability
A
1 hr
Test Coverage
import {
GET_CHAPTER_REQUEST,
GET_CHAPTER_SUCCESS,
GET_CHAPTER_FAILURE,
FIND_CHAPTERS_REQUEST,
FIND_CHAPTERS_SUCCESS,
FIND_CHAPTERS_FAILURE,
SAVE_CHAPTER_REQUEST,
SAVE_CHAPTER_SUCCESS,
SAVE_CHAPTER_FAILURE,
ADD_INVITE_CODE_TO_CHAPTER_REQUEST,
ADD_INVITE_CODE_TO_CHAPTER_SUCCESS,
ADD_INVITE_CODE_TO_CHAPTER_FAILURE,
FIND_MEMBERS_SUCCESS,
REASSIGN_MEMBERS_TO_CHAPTER_SUCCESS,
} from 'src/common/actions/types'
 
import {mergeEntities} from '../util'
 
const initialState = {
chapters: {},
isBusy: false,
}
 
Function `chapters` has 31 lines of code (exceeds 25 allowed). Consider refactoring.
export default function chapters(state = initialState, action) {
switch (action.type) {
case GET_CHAPTER_REQUEST:
case FIND_CHAPTERS_REQUEST:
case ADD_INVITE_CODE_TO_CHAPTER_REQUEST:
case SAVE_CHAPTER_REQUEST:
return Object.assign({}, state, {
isBusy: true,
})
case GET_CHAPTER_SUCCESS:
case FIND_CHAPTERS_SUCCESS:
case ADD_INVITE_CODE_TO_CHAPTER_SUCCESS:
case SAVE_CHAPTER_SUCCESS:
case FIND_MEMBERS_SUCCESS:
case REASSIGN_MEMBERS_TO_CHAPTER_SUCCESS:
{
const chapters = mergeEntities(state.chapters, action.response.entities.chapters)
return Object.assign({}, state, {
isBusy: false,
chapters,
})
}
case GET_CHAPTER_FAILURE:
case FIND_CHAPTERS_FAILURE:
case ADD_INVITE_CODE_TO_CHAPTER_FAILURE:
case SAVE_CHAPTER_FAILURE:
return Object.assign({}, state, {
isBusy: false,
})
default:
return state
}
}