Refactor error handling in FalukantService and enhance user feedback in HealthView
- Changed error throwing in FalukantService to use PreconditionError for better clarity. - Added translations for "too close" error in both German and English locales. - Improved user feedback in HealthView by displaying error messages in a dialog upon measure execution failure.
This commit is contained in:
@@ -918,6 +918,9 @@
|
||||
"success": "Erfolg",
|
||||
"selectMeasure": "Maßnahme",
|
||||
"perform": "Durchführen",
|
||||
"errors": {
|
||||
"tooClose": "Aktionen zu dicht hintereinander (maximal 1× pro 24 Stunden)."
|
||||
},
|
||||
"measures": {
|
||||
"pill": "Tablette",
|
||||
"doctor": "Arztbesuch",
|
||||
|
||||
@@ -100,6 +100,12 @@
|
||||
"bad": "Bad",
|
||||
"very_bad": "Very bad"
|
||||
},
|
||||
"healthview": {
|
||||
"title": "Health",
|
||||
"errors": {
|
||||
"tooClose": "Actions too close together (max once per 24 hours)."
|
||||
}
|
||||
},
|
||||
"moneyHistory": {
|
||||
"title": "Money history",
|
||||
"filter": "Filter",
|
||||
|
||||
@@ -129,13 +129,22 @@ export default {
|
||||
async performMeasure() {
|
||||
if (!this.selectedMeasure) return;
|
||||
try {
|
||||
await apiClient.post('/api/falukant/health', {
|
||||
const { data } = await apiClient.post('/api/falukant/health', {
|
||||
measureTr: this.selectedTr
|
||||
});
|
||||
// Feedback via global message dialog
|
||||
const title = this.$t('falukant.healthview.title');
|
||||
const body = data?.delta != null
|
||||
? `${this.$t(`falukant.healthview.measures.${this.selectedTr}`)}: ${data.delta > 0 ? '+' : ''}${data.delta}`
|
||||
: this.$t('message.success');
|
||||
this.$root.$refs.messageDialog?.open(body, title);
|
||||
await this.loadHealthData();
|
||||
this.selectedTr = '';
|
||||
} catch (err) {
|
||||
console.error('Error performing measure', err);
|
||||
const title = this.$t('falukant.healthview.title');
|
||||
const remoteMsg = err?.response?.data?.error || err?.message || String(err);
|
||||
this.$root.$refs.messageDialog?.open(remoteMsg, title);
|
||||
}
|
||||
},
|
||||
handleDaemonMessage(evt) {
|
||||
|
||||
Reference in New Issue
Block a user