skillbox/client/src/mixins/update-selected-class.js

43 lines
1.3 KiB
JavaScript

import ME_QUERY from '@/graphql/gql/queries/meQuery.gql';
import UPDATE_USER_SETTING from '@/graphql/gql/mutations/updateUserSetting.gql';
import MY_SCHOOL_CLASS_QUERY from '@/graphql/gql/queries/mySchoolClass.gql';
import DELETE_MODULE_NODES from '@/graphql/gql/local/mutations/deleteModuleNodes.gql';
import MODULE_DETAILS_QUERY from '@/graphql/gql/queries/modules/moduleDetailsQuery.gql';
export default {
methods: {
updateSelectedClass(selectedClass) {
const innerApollo = this.$apollo;
return this.$apollo.mutate({
mutation: UPDATE_USER_SETTING,
variables: {
input: {
id: selectedClass.id
}
},
update(store, data) {
let meData = store.readQuery({query: ME_QUERY});
meData.me.selectedClass = selectedClass;
store.writeQuery({query: ME_QUERY, data: meData});
innerApollo.mutate({
mutation: DELETE_MODULE_NODES
});
},
refetchQueries: [{
query: MY_SCHOOL_CLASS_QUERY
}, {
query: MODULE_DETAILS_QUERY,
variables: {
slug: this.$route.params.slug
}
}]
}).catch((error) => {
console.warn('failed to update selected class', error);
});
}
},
};