WIP Добавил обновление, контактов персоны
This commit is contained in:
@@ -131,19 +131,19 @@ const getters = {
|
||||
};
|
||||
},
|
||||
getContactsData(state) {
|
||||
let phones = state.medicalCard.person.contacts.filter(
|
||||
(el) => el.kind === "PHONE"
|
||||
);
|
||||
let emails = state.medicalCard.person.contacts.filter(
|
||||
(el) => el.kind === "EMAIL"
|
||||
);
|
||||
let networks = state.medicalCard.person.contacts.filter(
|
||||
(el) => el.kind !== "PHONE" && el.kind !== "EMAIL"
|
||||
);
|
||||
let phones = state.medicalCard.person.contacts
|
||||
.filter((el) => el.kind === "PHONE")
|
||||
.map((el) => ({ ...el }));
|
||||
let emails = state.medicalCard.person.contacts
|
||||
.filter((el) => el.kind === "EMAIL")
|
||||
.map((el) => ({ ...el }));
|
||||
let networks = state.medicalCard.person.contacts
|
||||
.filter((el) => el.kind !== "PHONE" && el.kind !== "EMAIL")
|
||||
.map((el) => ({ ...el }));
|
||||
return {
|
||||
phones: phones,
|
||||
emails: emails,
|
||||
networks: networks,
|
||||
phones: [...phones],
|
||||
emails: [...emails],
|
||||
networks: [...networks],
|
||||
};
|
||||
},
|
||||
getAvatar(state) {
|
||||
@@ -170,6 +170,7 @@ const actions = {
|
||||
},
|
||||
returnInitData({ commit }) {
|
||||
commit("setBasicData");
|
||||
commit("setContactsData");
|
||||
},
|
||||
removeMedicalCardData({ commit, rootState }) {
|
||||
fetchWrapper
|
||||
@@ -184,6 +185,41 @@ const actions = {
|
||||
localStorage.removeItem("medicalId");
|
||||
});
|
||||
},
|
||||
updateContactsData({ commit, state }) {
|
||||
const personId = state.medicalCard.person.id;
|
||||
const initContacts = state.medicalCard.person.contacts;
|
||||
const allNewContacts = [
|
||||
...state.contactsData.phones,
|
||||
...state.contactsData.emails,
|
||||
...state.contactsData.networks,
|
||||
];
|
||||
let requestDelete = initContacts
|
||||
.filter((el) => !allNewContacts.find((newNet) => newNet.id === el.id))
|
||||
.map((el) => fetchWrapper.del(`general/contact/${el.id}/delete/`));
|
||||
const request = allNewContacts
|
||||
.map((network) => {
|
||||
let initNetwork = initContacts.find((el) => el.id === network.id);
|
||||
if (!network.id) {
|
||||
return fetchWrapper.post(`general/contact/create/`, {
|
||||
person: personId,
|
||||
...network,
|
||||
});
|
||||
}
|
||||
if (network.id && network.username !== initNetwork.username) {
|
||||
return fetchWrapper.post(`general/contact/${network.id}/update/`, {
|
||||
person: personId,
|
||||
username: network.username,
|
||||
kind: network.kind,
|
||||
});
|
||||
}
|
||||
return Promise.resolve();
|
||||
})
|
||||
.concat(requestDelete);
|
||||
|
||||
return Promise.allSettled(request).then(() =>
|
||||
actions.getMedicalCardData({ commit })
|
||||
);
|
||||
},
|
||||
};
|
||||
|
||||
const mutations = {
|
||||
|
||||
Reference in New Issue
Block a user