43 lines
1.3 KiB
JavaScript
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);
|
|
});
|
|
}
|
|
},
|
|
};
|