mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
further conversions to general makeFetch and toasts
This commit is contained in:
parent
fb9df1dba0
commit
e94bbc1271
@ -10,7 +10,7 @@
|
||||
|
||||
<script>
|
||||
import AddAddress from './components/AddAddress.vue';
|
||||
import { postAddressToHousehold, postAddressToPerson } from "ChillPersonAssets/vuejs/_api/AddAddress";
|
||||
import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods.js';
|
||||
|
||||
export default {
|
||||
name: "App",
|
||||
@ -31,24 +31,16 @@ export default {
|
||||
: this.context.target.name + '_' + this.context.target.id ;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
//console.log('AddAddress: data context', this.context);
|
||||
//console.log('AddAddress: data options', this.options);
|
||||
},
|
||||
methods: {
|
||||
displayErrors() {
|
||||
return this.$refs.addAddress.errorMsg;
|
||||
},
|
||||
submitAddress(payload) {
|
||||
console.log('@@@ click on Submit Address Button', payload);
|
||||
|
||||
// Existing address
|
||||
if (this.context.edit) {
|
||||
|
||||
// address is already linked, just finish !
|
||||
this.$refs.addAddress.afterLastPaneAction({});
|
||||
this.$emit('addressEdited', payload);
|
||||
|
||||
// New created address
|
||||
} else {
|
||||
this.postAddressTo(payload);
|
||||
@ -60,51 +52,39 @@ export default {
|
||||
*/
|
||||
postAddressTo(payload) {
|
||||
this.$emit('addressCreated', payload);
|
||||
let url = '';
|
||||
|
||||
console.log('postAddress', payload.addressId, 'To', payload.target, payload.targetId);
|
||||
switch (payload.target) {
|
||||
case 'household':
|
||||
postAddressToHousehold(payload.targetId, payload.addressId)
|
||||
.then(address => new Promise((resolve, reject) => {
|
||||
console.log('..household address', address);
|
||||
this.$refs.addAddress.flag.loading = false;
|
||||
this.$refs.addAddress.flag.success = true;
|
||||
|
||||
// finish
|
||||
this.$refs.addAddress.afterLastPaneAction({ addressId: address.address_id });
|
||||
|
||||
resolve();
|
||||
}))
|
||||
.catch((error) => {
|
||||
this.$refs.addAddress.errorMsg.push(error);
|
||||
this.$refs.addAddress.flag.loading = false;
|
||||
})
|
||||
;
|
||||
url = `/api/1.0/person/household/${payload.targetId}/address.json`
|
||||
break;
|
||||
case 'person':
|
||||
postAddressToPerson(payload.targetId, payload.addressId)
|
||||
.then(address => new Promise((resolve, reject) => {
|
||||
console.log('..person address', address);
|
||||
this.$refs.addAddress.flag.loading = false;
|
||||
this.$refs.addAddress.flag.success = true;
|
||||
|
||||
// finish
|
||||
this.$refs.addAddress.afterLastPaneAction({ addressId: address.address_id });
|
||||
|
||||
resolve();
|
||||
}))
|
||||
.catch((error) => {
|
||||
this.$refs.addAddress.errorMsg.push(error);
|
||||
this.$refs.addAddress.flag.loading = false;
|
||||
})
|
||||
;
|
||||
url = `/api/1.0/person/person/${payload.targetId}/address.json`
|
||||
break;
|
||||
case 'thirdparty':
|
||||
console.log('TODO write postAddressToThirdparty');
|
||||
// TODO write postAddressToThirdparty;
|
||||
break;
|
||||
default:
|
||||
this.$refs.addAddress.errorMsg.push('That entity is not managed by address !');
|
||||
this.$refs.addAddress.errorMsg.push('This entity is not managed by address !');
|
||||
}
|
||||
const body = {
|
||||
'id': payload.addressId
|
||||
};
|
||||
|
||||
makeFetch('POST', url, body)
|
||||
.then((response) => {
|
||||
this.$refs.addAddress.flag.loading = false;
|
||||
this.$refs.addAddress.flag.success = true;
|
||||
this.$refs.addAddress.afterLastPaneAction({ addressId: response.address_id });
|
||||
})
|
||||
.catch(({name, violations}) => {
|
||||
if (name === 'ValidationException' || name === 'AccessException') {
|
||||
violations.forEach((violation) => this.$toast.open({message: violation}));
|
||||
} else {
|
||||
this.$toast.open({message: 'An error occurred'})
|
||||
}
|
||||
this.$refs.addAddress.flag.loading = false;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -87,8 +87,8 @@ const postAddress = (address) => {
|
||||
* @returns {Promise<Response>}
|
||||
*/
|
||||
const duplicateAddress = (address) => {
|
||||
const url = `/api/1.0/main/address/${address.address_id}/duplicate.json`;
|
||||
return fetch(url, {
|
||||
const url = `/api/1.0/main/address/${address.address_id}/duplicate.json`;
|
||||
return fetch(url, {
|
||||
'method': 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=utf-8'
|
||||
|
@ -220,16 +220,15 @@
|
||||
<script>
|
||||
import Modal from 'ChillMainAssets/vuejs/_components/Modal';
|
||||
import {
|
||||
duplicateAddress,
|
||||
fetchCountries,
|
||||
fetchCities,
|
||||
fetchReferenceAddresses,
|
||||
getAddress,
|
||||
patchAddress,
|
||||
postAddress,
|
||||
postPostalCode,
|
||||
duplicateAddress,
|
||||
fetchCountries,
|
||||
fetchCities,
|
||||
fetchReferenceAddresses,
|
||||
getAddress,
|
||||
patchAddress,
|
||||
postAddress,
|
||||
postPostalCode,
|
||||
} from '../api';
|
||||
import { postAddressToPerson, postAddressToHousehold } from "ChillPersonAssets/vuejs/_api/AddAddress.js";
|
||||
import ShowPane from './ShowPane.vue';
|
||||
import SuggestPane from './SuggestPane.vue';
|
||||
import EditPane from './EditPane.vue';
|
||||
@ -355,14 +354,7 @@ export default {
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
//console.log('validFrom', this.validFrom);
|
||||
//console.log('validTo', this.validTo);
|
||||
//console.log('useDatePane', this.useDatePane);
|
||||
|
||||
// console.log('Mounted now !');
|
||||
if (this.context.edit) {
|
||||
// console.log('getInitialAddress', this.context.addressId);
|
||||
this.getInitialAddress(this.context.addressId);
|
||||
}
|
||||
this.openShowPane();
|
||||
|
@ -5,8 +5,6 @@ import { getAccompanyingCourse,
|
||||
getReferrersSuggested,
|
||||
getUsers,
|
||||
} from '../api';
|
||||
import { patchPerson } from "ChillPersonAssets/vuejs/_api/OnTheFly";
|
||||
import { patchThirdparty } from "ChillThirdPartyAssets/vuejs/_api/OnTheFly";
|
||||
import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods';
|
||||
|
||||
|
||||
@ -355,15 +353,14 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise])
|
||||
},
|
||||
/**
|
||||
* On The Fly
|
||||
* ? should be into the dedicated component, no ? JF
|
||||
* I think it's better to leave it here, because this action is dispatched in 3 different components,
|
||||
* so lots of code repitition if we would put this in the components themselves.
|
||||
*/
|
||||
patchOnTheFly({ commit }, payload) {
|
||||
// TODO should be into the dedicated component, no ? JF
|
||||
// console.log('## action: patch OnTheFly', payload);
|
||||
let body = { type: payload.type };
|
||||
|
||||
if (payload.type === 'person') {
|
||||
const id = payload.data.id;
|
||||
const url = `/api/1.0/person/person/${id}.json`;
|
||||
body.firstName = payload.data.firstName;
|
||||
body.lastName = payload.data.lastName;
|
||||
if (payload.data.birthdate !== null) { body.birthdate = payload.data.birthdate; }
|
||||
@ -371,50 +368,27 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise])
|
||||
body.mobilenumber = payload.data.mobilenumber;
|
||||
body.gender = payload.data.gender;
|
||||
|
||||
makeFetch('PATCH', url, body)
|
||||
.then((response) => {
|
||||
commit('updatePerson', {target: payload.target, person: response});
|
||||
})
|
||||
.catch((error) => {
|
||||
commit('catchError', error);
|
||||
throw error;
|
||||
})
|
||||
|
||||
|
||||
// console.log('id', payload.data.id, 'and body', body);
|
||||
|
||||
// patchPerson(payload.data.id, body)
|
||||
// .then(person => new Promise((resolve, reject) => {
|
||||
// // console.log('patch person', person);
|
||||
// commit('updatePerson', { target: payload.target, person: person });
|
||||
// resolve();
|
||||
// }));
|
||||
}
|
||||
else if (payload.type === 'thirdparty') {
|
||||
const id = payload.data.id;
|
||||
const url = `/api/1.0/person/person/${id}.json`;
|
||||
const mutation = 'updatePerson'
|
||||
} else if (payload.type === 'thirdparty') {
|
||||
body.name = payload.data.text;
|
||||
body.email = payload.data.email;
|
||||
body.telephone = payload.data.phonenumber;
|
||||
body.address = { id: payload.data.address.address_id };
|
||||
|
||||
// console.log('id', payload.data.id, 'and body', body);
|
||||
// patchThirdparty(payload.data.id, body)
|
||||
// .then(thirdparty => new Promise((resolve, reject) => {
|
||||
// console.log('patch thirdparty', thirdparty);
|
||||
// commit('updateThirdparty', { target: payload.target, thirdparty: thirdparty });
|
||||
// resolve();
|
||||
// }));
|
||||
|
||||
const id = payload.data.id;
|
||||
const url = `/api/1.0/thirdparty/thirdparty/${id}.json`;
|
||||
const mutation = 'updateThirdparty'
|
||||
}
|
||||
makeFetch('PATCH', url, body)
|
||||
.then((response) => {
|
||||
commit('updateThirdparty', {target: payload.target, thirdparty: response});
|
||||
commit(mutation, {target: payload.target, thirdparty: response});
|
||||
})
|
||||
.catch((error) => {
|
||||
commit('catchError', error);
|
||||
throw error;
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Update accompanying course intensity/emergency/confidentiality
|
||||
@ -509,8 +483,7 @@ let initPromise = Promise.all([scopesPromise, accompanyingCoursePromise])
|
||||
let checkedScopesIds = scopes.map(scope => scope.id);
|
||||
let removedScopesIds = currentServerScopesIds.filter(id => !checkedScopesIds.includes(id));
|
||||
let addedScopesIds = checkedScopesIds.filter(id => !currentServerScopesIds.includes(id));
|
||||
let lengthAfterOperation = currentServerScopesIds.length + addedScopesIds.length
|
||||
- removedScopesIds.length;
|
||||
let lengthAfterOperation = currentServerScopesIds.length + addedScopesIds.length - removedScopesIds.length;
|
||||
|
||||
return dispatch('updateScopes', {
|
||||
addedScopesIds, removedScopesIds
|
||||
|
@ -1,51 +1,51 @@
|
||||
|
||||
/*
|
||||
* Endpoint chill_api_single_person_address
|
||||
* method POST, post Person instance
|
||||
*
|
||||
* @id integer - id of Person
|
||||
* @body Object - dictionary with changes to post
|
||||
*/
|
||||
const postAddressToPerson = (personId, addressId) => {
|
||||
//console.log(personId);
|
||||
//console.log(addressId);
|
||||
const body = {
|
||||
'id': addressId
|
||||
};
|
||||
const url = `/api/1.0/person/person/${personId}/address.json`
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {'Content-Type': 'application/json;charset=utf-8'},
|
||||
body: JSON.stringify(body)
|
||||
})
|
||||
.then(response => {
|
||||
if (response.ok) { return response.json(); }
|
||||
throw Error('Error with request resource response');
|
||||
});
|
||||
};
|
||||
// /*
|
||||
// * Endpoint chill_api_single_person_address
|
||||
// * method POST, post Person instance
|
||||
// *
|
||||
// * @id integer - id of Person
|
||||
// * @body Object - dictionary with changes to post
|
||||
// */
|
||||
// const postAddressToPerson = (personId, addressId) => {
|
||||
// //console.log(personId);
|
||||
// //console.log(addressId);
|
||||
// const body = {
|
||||
// 'id': addressId
|
||||
// };
|
||||
// const url = `/api/1.0/person/person/${personId}/address.json`
|
||||
// return fetch(url, {
|
||||
// method: 'POST',
|
||||
// headers: {'Content-Type': 'application/json;charset=utf-8'},
|
||||
// body: JSON.stringify(body)
|
||||
// })
|
||||
// .then(response => {
|
||||
// if (response.ok) { return response.json(); }
|
||||
// throw Error('Error with request resource response');
|
||||
// });
|
||||
// };
|
||||
|
||||
/*
|
||||
* Endpoint household
|
||||
* method POST, post Household instance
|
||||
*
|
||||
* @id integer - id of household
|
||||
* @body Object - dictionary with changes to post
|
||||
*/
|
||||
const postAddressToHousehold = (householdId, addressId) => {
|
||||
const body = {
|
||||
'id': addressId
|
||||
};
|
||||
const url = `/api/1.0/person/household/${householdId}/address.json`
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {'Content-Type': 'application/json;charset=utf-8'},
|
||||
body: JSON.stringify(body)
|
||||
})
|
||||
.then(response => {
|
||||
if (response.ok) { return response.json(); }
|
||||
throw Error('Error with request resource response');
|
||||
});
|
||||
};
|
||||
// /*
|
||||
// * Endpoint household
|
||||
// * method POST, post Household instance
|
||||
// *
|
||||
// * @id integer - id of household
|
||||
// * @body Object - dictionary with changes to post
|
||||
// */
|
||||
// const postAddressToHousehold = (householdId, addressId) => {
|
||||
// const body = {
|
||||
// 'id': addressId
|
||||
// };
|
||||
// const url = `/api/1.0/person/household/${householdId}/address.json`
|
||||
// return fetch(url, {
|
||||
// method: 'POST',
|
||||
// headers: {'Content-Type': 'application/json;charset=utf-8'},
|
||||
// body: JSON.stringify(body)
|
||||
// })
|
||||
// .then(response => {
|
||||
// if (response.ok) { return response.json(); }
|
||||
// throw Error('Error with request resource response');
|
||||
// });
|
||||
// };
|
||||
|
||||
|
||||
export { postAddressToPerson, postAddressToHousehold };
|
||||
// export { postAddressToPerson, postAddressToHousehold };
|
||||
|
@ -1,53 +1,53 @@
|
||||
/*
|
||||
* GET a person by id
|
||||
*/
|
||||
const getPerson = (id) => {
|
||||
const url = `/api/1.0/person/person/${id}.json`;
|
||||
return fetch(url)
|
||||
.then(response => {
|
||||
if (response.ok) { return response.json(); }
|
||||
throw Error('Error with request resource response');
|
||||
});
|
||||
};
|
||||
// const getPerson = (id) => {
|
||||
// const url = `/api/1.0/person/person/${id}.json`;
|
||||
// return fetch(url)
|
||||
// .then(response => {
|
||||
// if (response.ok) { return response.json(); }
|
||||
// throw Error('Error with request resource response');
|
||||
// });
|
||||
// };
|
||||
|
||||
/*
|
||||
* POST a new person
|
||||
*/
|
||||
const postPerson = (body) => {
|
||||
const url = `/api/1.0/person/person.json`;
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=utf-8'
|
||||
},
|
||||
body: JSON.stringify(body)
|
||||
})
|
||||
.then(response => {
|
||||
if (response.ok) { return response.json(); }
|
||||
throw Error('Error with request resource response');
|
||||
});
|
||||
};
|
||||
// const postPerson = (body) => {
|
||||
// const url = `/api/1.0/person/person.json`;
|
||||
// return fetch(url, {
|
||||
// method: 'POST',
|
||||
// headers: {
|
||||
// 'Content-Type': 'application/json;charset=utf-8'
|
||||
// },
|
||||
// body: JSON.stringify(body)
|
||||
// })
|
||||
// .then(response => {
|
||||
// if (response.ok) { return response.json(); }
|
||||
// throw Error('Error with request resource response');
|
||||
// });
|
||||
// };
|
||||
|
||||
/*
|
||||
* PATCH an existing person
|
||||
*/
|
||||
const patchPerson = (id, body) => {
|
||||
const url = `/api/1.0/person/person/${id}.json`;
|
||||
return fetch(url, {
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=utf-8'
|
||||
},
|
||||
body: JSON.stringify(body)
|
||||
})
|
||||
.then(response => {
|
||||
if (response.ok) { return response.json(); }
|
||||
throw Error('Error with request resource response');
|
||||
});
|
||||
};
|
||||
// const patchPerson = (id, body) => {
|
||||
// const url = `/api/1.0/person/person/${id}.json`;
|
||||
// return fetch(url, {
|
||||
// method: 'PATCH',
|
||||
// headers: {
|
||||
// 'Content-Type': 'application/json;charset=utf-8'
|
||||
// },
|
||||
// body: JSON.stringify(body)
|
||||
// })
|
||||
// .then(response => {
|
||||
// if (response.ok) { return response.json(); }
|
||||
// throw Error('Error with request resource response');
|
||||
// });
|
||||
// };
|
||||
|
||||
export {
|
||||
getPerson,
|
||||
postPerson,
|
||||
patchPerson
|
||||
// getPerson,
|
||||
// postPerson,
|
||||
// patchPerson
|
||||
};
|
||||
|
@ -257,16 +257,11 @@ export default {
|
||||
saveFormOnTheFly({ type, data }) {
|
||||
// console.log('saveFormOnTheFly from addPersons, type', type, ', data', data);
|
||||
if (type === 'person') {
|
||||
// console.log('type person with', data);
|
||||
postPerson(data)
|
||||
.then(person => new Promise((resolve, reject) => {
|
||||
// console.log('onthefly create: post person', person);
|
||||
this.newPriorSuggestion(person);
|
||||
resolve();
|
||||
}));
|
||||
const url = `/api/1.0/person/person.json`;
|
||||
}
|
||||
else if (type === 'thirdparty') {
|
||||
const url = `/api/1.0/thirdparty/thirdparty.json`;
|
||||
}
|
||||
makeFetch('POST', url, data)
|
||||
.then((response) => {
|
||||
this.newPriorSuggestion(response);
|
||||
@ -279,7 +274,6 @@ export default {
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
@ -76,6 +76,7 @@
|
||||
|
||||
<script>
|
||||
import { getPerson } from '../../_api/OnTheFly';
|
||||
import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods';
|
||||
import PersonRenderBox from '../Entity/PersonRenderBox.vue';
|
||||
|
||||
export default {
|
||||
@ -156,12 +157,18 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
loadData() {
|
||||
getPerson(this.id)
|
||||
.then(person => new Promise((resolve, reject) => {
|
||||
this.person = person;
|
||||
console.log('get person', this.person);
|
||||
resolve();
|
||||
}));
|
||||
const url = `/api/1.0/person/person/${this.id}.json`;
|
||||
makeFetch('GET', url)
|
||||
.then((response) => {
|
||||
this.person = response;
|
||||
})
|
||||
.catch(({name, violations}) => {
|
||||
if (name === 'ValidationException' || name === 'AccessException') {
|
||||
violations.forEach((violation) => this.$toast.open({message: violation}));
|
||||
} else {
|
||||
this.$toast.open({message: 'An error occurred'})
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user