import $ from 'jquery' const state = { main: 0, isGetChannelInfoRunning: false } const getters = { getIsGetChannelInfoRunning ({ state }) { return state.isGetChannelInfoRunning } } const actions = { invidiousAPICall ({ rootState }, payload) { return new Promise((resolve, reject) => { const requestUrl = rootState.settings.invidiousInstance + '/api/v1/' + payload.resource + '/' + payload.id + '?' + $.param(payload.params) $.getJSON(requestUrl, (response) => { resolve(response) }).fail((xhr, textStatus, error) => { console.log(xhr) console.log(textStatus) console.log(requestUrl) console.log(error) reject(xhr) }) }) }, /* eslint-disable-next-line */ invidiousDefaultErrorHandler({}, xhr) { if (typeof (xhr.responseJSON.error) !== 'undefined') { console.log('Invidious API Error: ' + xhr.responseJSON.error) } else { console.log('There was an error calling the Invidious API') console.log(xhr) } }, invidiousGetChannelInfo ({ commit, dispatch }, channelId) { return new Promise((resolve, reject) => { commit('toggleIsGetChannelInfoRunning') const payload = { resource: 'channels', id: channelId, params: {} } dispatch('invidiousAPICall', payload).then((response) => { resolve(response) }).catch((xhr) => { console.log('found an error') console.log(xhr) dispatch('invidiousDefaultErrorHandler', xhr) commit('toggleIsGetChannelInfoRunning') reject(xhr) }) }) }, invidiousGetPlaylistInfo ({ commit, dispatch }, payload) { return new Promise((resolve, reject) => { dispatch('invidiousAPICall', payload).then((response) => { resolve(response) }).catch((xhr) => { console.log('found an error') console.log(xhr) dispatch('invidiousDefaultErrorHandler', xhr) commit('toggleIsGetChannelInfoRunning') reject(xhr) }) }) }, invidiousGetVideoInformation ({ dispatch }, videoId) { return new Promise((resolve, reject) => { const payload = { resource: 'videos', id: videoId, params: {} } dispatch('invidiousAPICall', payload).then((response) => { resolve(response) }).catch((xhr) => { console.log('found an error') console.log(xhr) dispatch('invidiousDefaultErrorHandler', xhr) reject(xhr) }) }) } } const mutations = { toggleIsGetChannelInfoRunning (state) { state.isGetChannelInfoRunning = !state.isGetChannelInfoRunning } } export default { state, getters, actions, mutations }