From a0a03ea9ee20526671439ea4d3bcc8cdecf66036 Mon Sep 17 00:00:00 2001 From: Sockenklaus Date: Sun, 28 Nov 2021 09:02:27 +0100 Subject: [PATCH] fine tuned error handling. working on #25 --- src/components/Employees/EmployeeForm.vue | 17 +++++++---------- src/stores/employee.ts | 22 ++++++++++++++-------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/src/components/Employees/EmployeeForm.vue b/src/components/Employees/EmployeeForm.vue index 4b23e5e..dab9d67 100644 --- a/src/components/Employees/EmployeeForm.vue +++ b/src/components/Employees/EmployeeForm.vue @@ -5,8 +5,6 @@ @save="submitForm" @toggleEdit="toggleEdit" /> - {{employeeStore.employee }} -
@@ -180,8 +178,6 @@ import { useUser } from '@/stores/user' import { useEmployee } from '@/stores/employee' import EmployeeFormControls from '@/components/Employees/EmployeeFormControls.vue' import { IMaskComponent as MaskInput } from 'vue-imask' -import employees from '@/stores/employees' - /** * Props @@ -247,7 +243,7 @@ const editEmployee = ref(props.id ? false : true) } })) -const v$ = useVuelidate(rules, employee) +const v$ = useVuelidate(rules, employee) // error because wrong return type in validateApiErrors()... /** @@ -279,13 +275,14 @@ function toggleEdit() { } async function submitForm(){ - if(await v$.value.$validate()) { + + if(await v$.value.$validate()){ if(employee.value.id){ - await employeeStore.patchEmployee() - - toggleEdit() + if(await employeeStore.patchEmployee()){ + toggleEdit() + } } - else if(await employeeStore.postEmployee()){ + else if(await employeeStore.postEmployee()) { router.push({name: "Employees/Index"}) } } diff --git a/src/stores/employee.ts b/src/stores/employee.ts index 96839cf..43a3be5 100644 --- a/src/stores/employee.ts +++ b/src/stores/employee.ts @@ -3,7 +3,6 @@ import axios from '@/axios' import { useUser } from './user' import { useNotifications } from './notifications' import Axios from 'axios' -import { stubFalse } from 'lodash' const user = useUser() const notifications = useNotifications() @@ -117,13 +116,19 @@ export const useEmployee = defineStore({ Object.assign(this.clean.employee, this.employee) notifications.add('success', result.statusText) + return true } catch(error) { - if(error instanceof Error) { - console.log(error) + console.log("Patch Employee Error") + if(Axios.isAxiosError(error)) { + let data = error.response?.data as { errors: EmployeeApiValidationError[] } + this.apiValidationErrors = [...data.errors] + } + else if(error instanceof Error) { notifications.add('danger', error.message, -1) } - else console.log(error) + console.log(error) + return false } }, @@ -142,17 +147,18 @@ export const useEmployee = defineStore({ this.assignTruthyValues(this.clean.employee, result.data) notifications.add('success', result.statusText) - console.log(result) return true } catch(error){ - console.log("enter catch") + console.log("Post Employee Error") if(Axios.isAxiosError(error)) { - console.log("enter axios error") let data = error.response?.data as { errors: EmployeeApiValidationError[] } - console.log(data) this.apiValidationErrors = [...data.errors] } + else if(error instanceof Error) { + notifications.add('danger', error.message, -1) + } + console.log(error) return false } },