habitica/website/client/store/actions/quests.js
Grayson Gilmore ce14a9dadb Challenge modal optimization - remove unnecessary API call - partial fix for #9371 (#9546)
* Attempt to use party data from the store rather than always fetching it from the API

* Move init code to shown() to prevent unnecessary network requests

* Use store party data in getGroup action if possible to save an API call

* Use store data rather than API call for party in challengeModal; remove unnecessary code in guilds:getGroup action

* Create party:getParty action and employ it in Group and ChallengeModal

* Use store instead of action return for party data

* Change how party data is stored
2018-01-12 16:18:56 -06:00

29 lines
751 B
JavaScript

import axios from 'axios';
import * as Analytics from 'client/libs/analytics';
// export async function initQuest (store) {
// }
export async function sendAction (store, payload) {
// @TODO: Maybe move this to server
let partyData = {
partyID: store.state.user.data.party._id,
partySize: store.state.partyMembers.data.length,
};
if (store.state.party && store.state.party.data) {
partyData = {
partyID: store.state.party.data._id,
partySize: store.state.party.data.memberCount,
};
}
Analytics.updateUser(partyData);
let response = await axios.post(`/api/v3/groups/${payload.groupId}/${payload.action}`);
// @TODO: Update user?
// User.sync();
return response.data.quest || response.data.data;
}