From e48829dc6fb197206269cb940af96515feb8eae4 Mon Sep 17 00:00:00 2001 From: Michael Geers Date: Fri, 28 Mar 2025 11:40:21 +0100 Subject: [PATCH] UI: don't error when tariff is missing (#20211) --- assets/js/api.js | 6 ++++++ assets/js/components/ChargingPlans/PlansSettings.vue | 8 ++------ assets/js/components/Savings/Savings.vue | 6 ++---- assets/js/components/Tariff/SmartCostLimit.vue | 9 ++++++--- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/assets/js/api.js b/assets/js/api.js index 146af401e..7c8935430 100644 --- a/assets/js/api.js +++ b/assets/js/api.js @@ -60,3 +60,9 @@ export const i18n = axios.create({ Accept: "application/toml", }, }); + +export const allowClientError = { + validateStatus(status) { + return status >= 200 && status < 500; + }, +}; diff --git a/assets/js/components/ChargingPlans/PlansSettings.vue b/assets/js/components/ChargingPlans/PlansSettings.vue index 9b1365e2a..5f964d69a 100644 --- a/assets/js/components/ChargingPlans/PlansSettings.vue +++ b/assets/js/components/ChargingPlans/PlansSettings.vue @@ -69,7 +69,7 @@ import RepeatingSettings from "./PlansRepeatingSettings.vue"; import Warnings from "./Warnings.vue"; import formatter from "../../mixins/formatter.js"; import collector from "../../mixins/collector.js"; -import api from "../../api.js"; +import api, { allowClientError } from "../../api.js"; import CustomSelect from "../Helper/CustomSelect.vue"; import deepEqual from "../../utils/deepEqual.js"; @@ -287,11 +287,7 @@ export default { return; } - const tariffRes = await api.get(`tariff/planner`, { - validateStatus(status) { - return status >= 200 && status < 500; - }, - }); + const tariffRes = await api.get(`tariff/planner`, allowClientError); if (tariffRes.status === 404) { this.tariff = { rates: [] }; } else { diff --git a/assets/js/components/Savings/Savings.vue b/assets/js/components/Savings/Savings.vue index 1b4896500..30dad89a4 100644 --- a/assets/js/components/Savings/Savings.vue +++ b/assets/js/components/Savings/Savings.vue @@ -211,7 +211,7 @@ import TelemetrySettings from "../TelemetrySettings.vue"; import CustomSelect from "../Helper/CustomSelect.vue"; import co2Reference from "./co2Reference.js"; import settings from "../../settings.js"; -import api from "../../api.js"; +import api, { allowClientError } from "../../api.js"; import { docsPrefix } from "../../i18n.js"; export default { @@ -321,9 +321,7 @@ export default { }, async updateReferenceGrid() { try { - const res = await api.get(`tariff/grid`, { - validateStatus: (status) => status >= 200 && status < 500, - }); + const res = await api.get(`tariff/grid`, allowClientError); const { rates } = res.data.result; this.referenceGrid = rates.reduce((acc, slot) => { diff --git a/assets/js/components/Tariff/SmartCostLimit.vue b/assets/js/components/Tariff/SmartCostLimit.vue index 12215fc0a..145d5fc9b 100644 --- a/assets/js/components/Tariff/SmartCostLimit.vue +++ b/assets/js/components/Tariff/SmartCostLimit.vue @@ -86,7 +86,7 @@ import formatter from "../../mixins/formatter.js"; import TariffChart from "./TariffChart.vue"; import { CO2_TYPE } from "../../units.js"; -import api from "../../api.js"; +import api, { allowClientError } from "../../api.js"; export default { name: "SmartCostLimit", @@ -258,8 +258,11 @@ export default { }, async updateTariff() { try { - this.tariff = (await api.get(`tariff/planner`)).data.result; - this.startTime = new Date(); + const tariffRes = await api.get(`tariff/planner`, allowClientError); + if (tariffRes.status === 200) { + this.tariff = tariffRes.data.result; + this.startTime = new Date(); + } } catch (e) { console.error(e); }