fix extract error from api call

This commit is contained in:
2025-10-09 00:34:57 +02:00
parent 774756a747
commit 4f1452e0d9
4 changed files with 12 additions and 24 deletions

View File

@@ -1,6 +1,6 @@
<script setup> <script setup>
import { ref, reactive, computed } from 'vue' import { ref, reactive, computed } from 'vue'
import { postBook } from './api.js' import { postBook, extractFormErrorFromField } from './api.js'
import { useRouter, useRoute } from 'vue-router' import { useRouter, useRoute } from 'vue-router'
const router = useRouter(); const router = useRouter();
@@ -11,24 +11,12 @@
}); });
const errors = ref(null) const errors = ref(null)
const titleError = computed(() => { const titleError = computed(() => {
return extractErrorFromField("Title"); return extractFormErrorFromField("Title", errors.value);
}) })
const authorError = computed(() => { const authorError = computed(() => {
return extractErrorFromField("Author"); return extractFormErrorFromField("Author", errors.value);
}) })
function extractErrorFromField(fieldName) {
if (errors.value === null) {
return "";
}
const titleErr = errors.value.find((e) => e["field"] === fieldName);
if (typeof titleErr !== 'undefined') {
return titleErr.error
} else {
return "";
}
}
function onSubmit(e) { function onSubmit(e) {
postBook(book) postBook(book)
.then((res) => { .then((res) => {

View File

@@ -1,6 +1,6 @@
<script setup> <script setup>
import { ref, computed } from 'vue' import { ref, computed } from 'vue'
import { postLogin, extractFromErrorFromField, extractGlobalFormError } from './api.js' import { postLogin, extractFormErrorFromField, extractGlobalFormError } from './api.js'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { useAuthStore } from './auth.store.js' import { useAuthStore } from './auth.store.js'
@@ -17,10 +17,10 @@
return extractGlobalFormError(errors.value); return extractGlobalFormError(errors.value);
}) })
const userError = computed(() => { const userError = computed(() => {
return extractFromErrorFromField("Username", errors.value); return extractFormErrorFromField("Username", errors.value);
}) })
const passwordError = computed(() => { const passwordError = computed(() => {
return extractFromErrorFromField("Password", errors.value); return extractFormErrorFromField("Password", errors.value);
}) })
async function onSubmit(e) { async function onSubmit(e) {

View File

@@ -1,6 +1,6 @@
<script setup> <script setup>
import { ref, computed } from 'vue' import { ref, computed } from 'vue'
import { postSignUp, extractFromErrorFromField, extractGlobalFormError } from './api.js' import { postSignUp, extractFormErrorFromField, extractGlobalFormError } from './api.js'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
const router = useRouter(); const router = useRouter();
@@ -16,10 +16,10 @@
return extractGlobalFormError(errors.value); return extractGlobalFormError(errors.value);
}) })
const userError = computed(() => { const userError = computed(() => {
return extractFromErrorFromField("Username", errors.value); return extractFormErrorFromField("Username", errors.value);
}) })
const passwordError = computed(() => { const passwordError = computed(() => {
return extractFromErrorFromField("Password", errors.value); return extractFormErrorFromField("Password", errors.value);
}) })
function onSubmit() { function onSubmit() {

View File

@@ -68,11 +68,11 @@ export function genericPostCall(apiRoute, object) {
} }
} }
export function extractFromErrorFromField(fieldName, errors) { export function extractFormErrorFromField(fieldName, errors) {
if (errors === null || !('field' in errors)) { if (errors === null) {
return ""; return "";
} }
const titleErr = errs.find((e) => e["field"] === fieldName); const titleErr = errors.find((e) => e["field"] === fieldName);
if (typeof titleErr !== 'undefined') { if (typeof titleErr !== 'undefined') {
return titleErr.error; return titleErr.error;
} else { } else {