refactor: refs #8217 simplify handleResponse and create/update
gitea/salix-front/pipeline/pr-dev This commit is unstable Details

This commit is contained in:
Javier Segarra 2025-04-29 13:45:39 +02:00
parent 6e9d83da1a
commit ae9cb05dda
1 changed files with 12 additions and 16 deletions

View File

@ -233,10 +233,8 @@ async function fetch() {
} }
} }
async function handleResponse(response, showCreatedNotification = false) { async function handleResponse(promise) {
if (showCreatedNotification) { const response = await Promise.allSettled([promise]);
notify('globals.dataCreated', 'positive');
}
updateAndEmit('onDataSaved', { updateAndEmit('onDataSaved', {
val: formData.value, val: formData.value,
res: response?.data, res: response?.data,
@ -247,24 +245,21 @@ async function handleResponse(response, showCreatedNotification = false) {
} }
async function create() { async function create() {
formData.value = trimData(formData.value); const promise = $props.saveFn
const url = $props.urlCreate; ? $props.saveFn(formData.value)
const response = await Promise.resolve( : axios.post($props.urlCreate, formData.value);
$props.saveFn ? $props.saveFn(formData.value) : axios.post(url, formData.value),
); await handleResponse(promise);
await handleResponse(response, true); notify('globals.dataCreated', 'positive');
} }
async function update() { async function update() {
formData.value = trimData(formData.value);
const body = mapper.value const body = mapper.value
? mapper.value(originalData.value, formData.value) ? mapper.value(originalData.value, formData.value)
: formData.value; : formData.value;
const url = $props.urlUpdate || $props.url || arrayData.store.url; const url = $props.urlUpdate || $props.url || arrayData.store.url;
const response = await Promise.resolve( const promise = $props.saveFn ? $props.saveFn(body) : axios.patch(url, body);
$props.saveFn ? $props.saveFn(body) : axios.patch(url, body), await handleResponse(promise);
);
await handleResponse(response);
} }
async function save() { async function save() {
@ -273,7 +268,8 @@ async function save() {
isLoading.value = true; isLoading.value = true;
try { try {
if ($props.urlCreate != null) { formData.value = trimData(formData.value);
if ($props.urlCreate) {
await create(); await create();
} else { } else {
await update(); await update();