Changes to post|put|patch|delete

This commit is contained in:
Simon Pocrnjič
2025-11-02 21:46:02 +01:00
parent 63e0958b66
commit fd9f26d82a
21 changed files with 786 additions and 465 deletions
@@ -4,7 +4,7 @@ import SectionTitle from '@/Components/SectionTitle.vue';
import { useForm, Field as FormField } from "vee-validate";
import { toTypedSchema } from "@vee-validate/zod";
import * as z from "zod";
import axios from 'axios';
import { router } from '@inertiajs/vue3';
import { ref } from 'vue';
import {
FormControl,
@@ -64,31 +64,30 @@ const updatePerson = async () => {
processingUpdate.value = true;
const { values } = form;
try {
const response = await axios({
method: 'put',
url: route('person.update', props.person),
data: values
});
props.person.full_name = response.data.person.full_name;
props.person.tax_number = response.data.person.tax_number;
props.person.social_security_number = response.data.person.social_security_number;
props.person.description = response.data.person.description;
processingUpdate.value = false;
close();
} catch (reason) {
const errors = reason.response?.data?.errors || {};
// Map axios errors to VeeValidate field errors
Object.keys(errors).forEach((field) => {
const errorMessages = Array.isArray(errors[field])
? errors[field]
: [errors[field]];
form.setFieldError(field, errorMessages[0]);
});
processingUpdate.value = false;
}
router.put(
route('person.update', props.person),
values,
{
preserveScroll: true,
onSuccess: () => {
processingUpdate.value = false;
close();
},
onError: (errors) => {
// Map Inertia errors to VeeValidate field errors
Object.keys(errors).forEach((field) => {
const errorMessages = Array.isArray(errors[field])
? errors[field]
: [errors[field]];
form.setFieldError(field, errorMessages[0]);
});
processingUpdate.value = false;
},
onFinish: () => {
processingUpdate.value = false;
},
}
);
}
const onSubmit = form.handleSubmit(() => {