| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import api from '../../utils/api'
-
- const state = {
- all: [],
- loaded: false,
- singleEpisode: null,
- }
-
- const getters = {
- allEpisodes: state => state.all,
- allEpisodesBySlug: state =>
- Object.values(state.all).reduce((bySlug, episode) => {
- bySlug[episode.slug] = episode
- return bySlug
- }, {}),
- allEpisodesLoaded: state => state.loaded,
- }
-
- const actions = {
- getAllEpisodes({ commit }, sortType) {
- commit('CLEAR_EPISODES')
- commit('EPISODES_LOADED', false)
- return api.getByType('episodes', sortType, episodes => {
- commit('STORE_FETCHED_EPISODES', { episodes })
- commit('EPISODES_LOADED', true)
- })
- },
- getSingleEpisode({ commit }, id) {
- commit('CLEAR_SINGLE_EPISODE')
- commit('EPISODES_LOADED', false)
- api.getSingleType('episodes', id, episode => {
- commit('STORE_FETCHED_SINGLE_EPISODE', episode)
- commit('EPISODES_LOADED', true)
- })
- },
- }
-
- const mutations = {
- STORE_FETCHED_EPISODES(state, { episodes }) {
- state.all = episodes
- },
- STORE_FETCHED_SINGLE_EPISODE(state, episode) {
- state.singleEpisode = episode
- },
- CLEAR_EPISODES(state) {
- state.all = []
- },
- CLEAR_SINGLE_EPISODE(state) {
- state.episode = null
- },
- EPISODES_LOADED(state, val) {
- state.loaded = val
- },
- }
-
- export default { state, getters, actions, mutations }
|