gamebrary/src/store/actions.js

89 lines
3.3 KiB
JavaScript
Raw Normal View History

2018-10-19 05:15:28 +00:00
import axios from 'axios';
2018-10-19 06:04:27 +00:00
const FIREBASE_URL = 'https://us-central1-gamebrary-8c736.cloudfunctions.net';
2018-10-19 05:15:28 +00:00
export default {
2018-10-19 06:04:27 +00:00
LOAD_GAMES({ commit }, gameList) {
2018-10-19 05:15:28 +00:00
return new Promise((resolve, reject) => {
2018-11-21 02:43:10 +00:00
axios.get(`${FIREBASE_URL}/games?games=${gameList}`)
2018-10-19 05:15:28 +00:00
.then(({ data }) => {
commit('CACHE_GAME_DATA', data);
resolve();
}).catch(reject);
});
},
2019-02-08 05:46:29 +00:00
LOAD_RELEASES({ commit }) {
return new Promise((resolve, reject) => {
2019-05-21 22:33:42 +00:00
axios.get('https://api.github.com/repos/romancm/gamebrary/releases')
2019-02-08 05:46:29 +00:00
.then(({ data }) => {
commit('SET_RELEASES', data);
resolve();
}).catch(reject);
});
},
2018-11-21 02:43:10 +00:00
LOAD_PUBLIC_GAMES({ commit }, gameList) {
return new Promise((resolve, reject) => {
axios.get(`${FIREBASE_URL}/games?games=${gameList}`)
.then(({ data }) => {
commit('SET_PUBLIC_GAME_DATA', data);
resolve();
}).catch(reject);
});
},
2018-11-17 22:21:29 +00:00
LOAD_GAME({ commit }, gameId) {
return new Promise((resolve, reject) => {
axios.get(`${FIREBASE_URL}/game?gameId=${gameId}`)
.then(({ data }) => {
commit('SET_ACTIVE_GAME', data);
resolve();
}).catch(reject);
});
},
SEARCH({ commit, state }, searchText) {
2018-10-19 05:15:28 +00:00
return new Promise((resolve, reject) => {
axios.get(`${FIREBASE_URL}/search?searchText=${searchText}&platformId=${state.platform.id}`)
2018-10-19 05:15:28 +00:00
.then(({ data }) => {
const originalData = data.slice();
if (state.platform.id === 37) {
2019-05-22 06:46:00 +00:00
// TODO: specify platform ids in platforms file,
// let endpoint handle multiple ids
axios.get(`${FIREBASE_URL}/search?searchText=${searchText}&platformId=137`)
.then((response) => {
const joinedData = [
...originalData,
...response.data,
];
2019-05-22 18:17:56 +00:00
const ids = [...new Set(joinedData.map(({ id }) => id))];
const unique = ids.map(e => joinedData.find(({ id }) => id === e));
commit('SET_SEARCH_RESULTS', unique);
commit('CACHE_GAME_DATA', unique);
resolve();
}).catch(reject);
} else {
commit('SET_SEARCH_RESULTS', data);
commit('CACHE_GAME_DATA', data);
resolve();
}
2018-10-19 05:15:28 +00:00
}).catch(reject);
});
},
2018-11-27 06:46:01 +00:00
2019-04-03 00:14:32 +00:00
SEND_WELCOME_EMAIL(context, additionalUserInfo) {
2019-04-02 23:45:01 +00:00
return new Promise((resolve, reject) => {
2019-04-03 00:14:32 +00:00
if (additionalUserInfo && additionalUserInfo.profile) {
axios.get(`${FIREBASE_URL}/email?address=${additionalUserInfo.profile.email}&template_id=welcome`)
.catch(reject);
} else {
reject();
}
2019-04-02 23:45:01 +00:00
});
},
2018-10-19 05:15:28 +00:00
};