Skip to content
Snippets Groups Projects
bar.reducers.ts 989 B
Newer Older
import { Bar } from "../../models/bar.model";
import { Menu } from "../../models/menu.model";
import { BarsActions, BarActionsTypes } from "../actions/bar.actions";

export interface BarState {
	bars: Bar[];
	currentMenu: Menu;
	currentBarId: string;
	error: string;
}

const defaultBarState = {
	bars: [],
	currentMenu: null,
	currentBarId: '',
	error: '',
}

export function barReducer(state: BarState = defaultBarState, action: BarsActions): BarState {
	switch (action.type) {

		case BarActionsTypes.FETCH_BAR_MENU: {
			return {
				...state,
				currentBarId: action.payload
			};
		}

		case BarActionsTypes.FETCH_BARS_SUCCESS: {
			return {
				...state,
				bars: action.payload
			};
		}

		case BarActionsTypes.FETCH_BAR_MENU_SUCCESS: {
			return {
				...state,
				currentMenu: action.payload
			};
		}

		case BarActionsTypes.FETCH_BAR_MENU_FAILED:
		case BarActionsTypes.FETCH_BARS_FAILED: {
			return {
				...state,
				error: action.payload
			};
		}
	}

	return state;
}