brandReducer.js 3.5 KB
'use strict';

import InitialState from './brandInitialState';
import Immutable, {Map} from 'immutable';

const {
	SET_TYPE,

	SET_BRAND_FILTER,
	SET_CHANNEL_FILTER,

	GETBRANDLIST_FOR_BOY_REQUEST,
	GETBRANDLIST_FOR_BOY_SUCCESS,
	GETBRANDLIST_FOR_BOY_FAILURE,

	GETBRANDLIST_FOR_GIRL_REQUEST,
	GETBRANDLIST_FOR_GIRL_SUCCESS,
	GETBRANDLIST_FOR_GIRL_FAILURE,

	GETBRANDLIST_FOR_KID_REQUEST,
	GETBRANDLIST_FOR_KID_SUCCESS,
	GETBRANDLIST_FOR_KID_FAILURE,

	GETBRANDLIST_FOR_LIFESTYLE_REQUEST,
	GETBRANDLIST_FOR_LIFESTYLE_SUCCESS,
	GETBRANDLIST_FOR_LIFESTYLE_FAILURE,

	GETBRANDRESOURCE_FOR_BOY_REQUEST,
	GETBRANDRESOURCE_FOR_BOY_SUCCESS,
	GETBRANDRESOURCE_FOR_BOY_FAILURE,

} = require('../../constants/actionTypes').default;

const initialState = new InitialState;

export default function brandReducer(state=initialState, action) {
    switch(action.type) {
		case SET_TYPE: {
			return state.set('type', action.payload);
		}

		case SET_BRAND_FILTER:{
			return state.set('brandFliter', action.payload);
		}

		case SET_CHANNEL_FILTER:{
			return state.set('channelFliter', action.payload);
		}

		case GETBRANDLIST_FOR_BOY_REQUEST:
		{
			return state;
		}
		case GETBRANDLIST_FOR_BOY_SUCCESS:
		{
			let {
				all_list,
				hot_list,
				new_list,
			} = action.payload;

			return state.setIn(['brandListForBoy', 'all_list'], Immutable.fromJS(all_list))
			.setIn(['brandListForBoy', 'hot_list'], Immutable.fromJS(hot_list))
			.setIn(['brandListForBoy', 'new_list'], Immutable.fromJS(new_list));
		}
		case GETBRANDLIST_FOR_BOY_FAILURE:
		{
			return state;
		}
		case GETBRANDLIST_FOR_GIRL_REQUEST:
		{
			return state;
		}
		case GETBRANDLIST_FOR_GIRL_SUCCESS:
		{
			let {
				all_list,
				hot_list,
				new_list,
			} = action.payload;

			return state.setIn(['brandListForGirl', 'all_list'], Immutable.fromJS(all_list))
			.setIn(['brandListForGirl', 'hot_list'], Immutable.fromJS(hot_list))
			.setIn(['brandListForGirl', 'new_list'], Immutable.fromJS(new_list));
		}
		case GETBRANDLIST_FOR_GIRL_FAILURE:
		{
			return state;
		}
		case GETBRANDLIST_FOR_KID_REQUEST:
		{
			return state;
		}
		case GETBRANDLIST_FOR_KID_SUCCESS:
		{
			let {
				all_list,
				hot_list,
				new_list,
			} = action.payload;

			return state.setIn(['brandListForKid', 'all_list'], Immutable.fromJS(all_list))
			.setIn(['brandListForKid', 'hot_list'], Immutable.fromJS(hot_list))
			.setIn(['brandListForKid', 'new_list'], Immutable.fromJS(new_list));
		}
		case GETBRANDLIST_FOR_KID_FAILURE:
		{
			return state;
		}
		case GETBRANDLIST_FOR_LIFESTYLE_REQUEST:
		{
			return state;
		}
		case GETBRANDLIST_FOR_LIFESTYLE_SUCCESS:
		{
			let {
				all_list,
				hot_list,
				new_list,
			} = action.payload;

			return state.setIn(['brandListForLifeStyle', 'all_list'], Immutable.fromJS(all_list))
			.setIn(['brandListForLifeStyle', 'hot_list'], Immutable.fromJS(hot_list))
			.setIn(['brandListForLifeStyle', 'new_list'], Immutable.fromJS(new_list));
		}
		case GETBRANDLIST_FOR_LIFESTYLE_FAILURE:
		{
			return state;
		}
		case GETBRANDRESOURCE_FOR_BOY_REQUEST:
		{
			return state;
		}
		case GETBRANDRESOURCE_FOR_BOY_SUCCESS:
		{
			let {
				bannerForBoy,
				custom_brandsForBoy,
				brandsTextForBoy,
			} = action.payload;

			return state.setIn(['reourceForBoy', 'bannerForBoy'], Immutable.fromJS(bannerForBoy))
			.setIn(['reourceForBoy', 'custom_brandsForBoy'], Immutable.fromJS(custom_brandsForBoy))
			.setIn(['reourceForBoy', 'brandsTextForBoy'], Immutable.fromJS(brandsTextForBoy))
		}
		case GETBRANDRESOURCE_FOR_BOY_FAILURE:
		{
			return state;
		}
    }

    return state;
}