Fix rounding in precipitation percentage (#3045)

Percentage should be always rounded so that we dont get something like
"47.0000000001 %"

Some small typo and naming fixes also while I am here

---------

Co-authored-by: veeck <michael@veeck.de>
This commit is contained in:
Veeck
2023-02-20 20:04:40 +01:00
committed by GitHub
parent 390e5d6490
commit 6d86ffade4
6 changed files with 21 additions and 19 deletions

View File

@@ -5,8 +5,8 @@
* @param {string} type what contenttype to expect in the response, can be "json" or "xml"
* @param {boolean} useCorsProxy A flag to indicate
* @param {Array.<{name: string, value:string}>} requestHeaders the HTTP headers to send
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to recieve
* @returns {Promise} resolved when the fetch is done. The response headers is placed in a headers-property (provided the response does not allready contain a headers-property).
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to receive
* @returns {Promise} resolved when the fetch is done. The response headers is placed in a headers-property (provided the response does not already contain a headers-property).
*/
async function performWebRequest(url, type = "json", useCorsProxy = false, requestHeaders = undefined, expectedResponseHeaders = undefined) {
const request = {};
@@ -36,7 +36,7 @@ async function performWebRequest(url, type = "json", useCorsProxy = false, reque
*
* @param {string} url the url to fetch from
* @param {Array.<{name: string, value:string}>} requestHeaders the HTTP headers to send
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to recieve
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to receive
* @returns {string} to be used as URL when calling CORS-method on server.
*/
const getCorsUrl = function (url, requestHeaders, expectedResponseHeaders) {
@@ -84,7 +84,7 @@ const getRequestHeaderString = function (requestHeaders) {
};
/**
* Gets headers and values to attatch to the web request.
* Gets headers and values to attach to the web request.
*
* @param {Array.<{name: string, value:string}>} requestHeaders the HTTP headers to send
* @returns {object} An object specifying name and value of the headers.
@@ -101,9 +101,9 @@ const getHeadersToSend = (requestHeaders) => {
};
/**
* Gets the part of the CORS URL that represents the expected HTTP headers to recieve.
* Gets the part of the CORS URL that represents the expected HTTP headers to receive.
*
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to recieve
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to receive
* @returns {string} to be used as the expected HTTP-headers component in CORS URL.
*/
const getExpectedResponseHeadersString = function (expectedResponseHeaders) {
@@ -124,7 +124,7 @@ const getExpectedResponseHeadersString = function (expectedResponseHeaders) {
/**
* Gets the values for the expected headers from the response.
*
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to recieve
* @param {Array.<string>} expectedResponseHeaders the expected HTTP headers to receive
* @param {Response} response the HTTP response
* @returns {string} to be used as the expected HTTP-headers component in CORS URL.
*/

View File

@@ -145,9 +145,9 @@ WeatherProvider.register("openweathermap", {
*/
generateWeatherObjectsFromForecast(forecasts) {
if (this.config.weatherEndpoint === "/forecast") {
return this.fetchForecastHourly(forecasts);
return this.generateForecastHourly(forecasts);
} else if (this.config.weatherEndpoint === "/forecast/daily") {
return this.fetchForecastDaily(forecasts);
return this.generateForecastDaily(forecasts);
}
// if weatherEndpoint does not match forecast or forecast/daily, what should be returned?
return [new WeatherObject()];
@@ -165,9 +165,10 @@ WeatherProvider.register("openweathermap", {
},
/*
* fetch forecast information for 3-hourly forecast (available for free subscription).
* Generate forecast information for 3-hourly forecast (available for free
* subscription).
*/
fetchForecastHourly(forecasts) {
generateForecastHourly(forecasts) {
// initial variable declaration
const days = [];
// variables for temperature range and rain
@@ -238,9 +239,10 @@ WeatherProvider.register("openweathermap", {
},
/*
* fetch forecast information for daily forecast (available for paid subscription or old apiKey).
* Generate forecast information for daily forecast (available for paid
* subscription or old apiKey).
*/
fetchForecastDaily(forecasts) {
generateForecastDaily(forecasts) {
// initial variable declaration
const days = [];

View File

@@ -40,7 +40,7 @@ const WeatherUtils = {
valueUnit = valueUnit ? valueUnit : "mm";
}
if (valueUnit === "%") return `${value}${valueUnit}`;
if (valueUnit === "%") return `${value.toFixed(0)} ${valueUnit}`;
return `${value.toFixed(2)} ${valueUnit}`;
},