import {apolloWrapper} from "boot/apollo"; import {getOperationName} from "@apollo/client/utilities"; export const updateInItems = (items, key, data) => { const idx = items.findIndex(i => i[key] === data[key]); if (idx >= 0) items[idx] = data; else items.push(data); return items; } export const deleteFromItems = (items, key, value) => { const idx = items.findIndex(a => a[key] === value); if (idx < 0) return; items.splice(idx, 1); } export const query = ({isQueryRunning, query, variables}) => { if (variables && variables.id) { variables.id = parseInt(variables.id); } isQueryRunning.value = true; const queryName = query.definitions[0].selectionSet.selections[0].name.value; return apolloWrapper.query(query, variables) .then((result) => result.data[queryName]) .finally(() => isQueryRunning.value = false); } export const mutate = ({isMutationRunning, mutation, variables}) => { isMutationRunning.value = true; const mutationName = getOperationName(mutation); return apolloWrapper.mutate(mutation, variables) .then(result => result.data[mutationName]) .finally(() => isMutationRunning.value = false); }