Surface real API error on warranty refresh
Error messages nest at data.data.error.message; the warranty handlers read one level too shallow so every failure showed a generic "failed". Read the correct path (with fallbacks) so the actual reason shows - e.g. Dell's rate-limit cooldown - and confirm the pulled coverage on a successful refresh. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -228,6 +228,14 @@ function openModal(item = null) {
|
|||||||
}
|
}
|
||||||
function closeModal() { showModal.value = false; editing.value = null }
|
function closeModal() { showModal.value = false; editing.value = null }
|
||||||
|
|
||||||
|
// API errors nest the message at data.data.error.message (see error_response).
|
||||||
|
function apiError(err, fallback) {
|
||||||
|
return err.response?.data?.data?.error?.message
|
||||||
|
|| err.response?.data?.error?.message
|
||||||
|
|| err.response?.data?.message
|
||||||
|
|| fallback
|
||||||
|
}
|
||||||
|
|
||||||
async function save() {
|
async function save() {
|
||||||
error.value = ''
|
error.value = ''
|
||||||
saving.value = true
|
saving.value = true
|
||||||
@@ -241,7 +249,7 @@ async function save() {
|
|||||||
closeModal()
|
closeModal()
|
||||||
loadData()
|
loadData()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
error.value = err.response?.data?.error?.message || err.response?.data?.message || 'Failed to save'
|
error.value = apiError(err, 'Failed to save')
|
||||||
} finally {
|
} finally {
|
||||||
saving.value = false
|
saving.value = false
|
||||||
}
|
}
|
||||||
@@ -253,16 +261,18 @@ async function deleteWarranty(w) {
|
|||||||
await warrantyApi.remove(w.warrantyid)
|
await warrantyApi.remove(w.warrantyid)
|
||||||
loadData()
|
loadData()
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
alert(err.response?.data?.error?.message || 'Failed to delete')
|
alert(apiError(err, 'Failed to delete'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function refresh(w) {
|
async function refresh(w) {
|
||||||
try {
|
try {
|
||||||
await warrantyApi.refresh(w.warrantyid)
|
const response = await warrantyApi.refresh(w.warrantyid)
|
||||||
loadData()
|
loadData()
|
||||||
|
const updated = response.data?.data
|
||||||
|
if (updated) alert(`Refreshed: ${updated.vendor} - ${updated.servicelevel || 'coverage'} ends ${updated.enddate || 'unknown'}`)
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
alert(err.response?.data?.error?.message || err.response?.data?.message || 'Refresh failed')
|
alert(apiError(err, 'Refresh failed'))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user