owmweather - Display error on unexpected data

master
Martin Boonk 2022-07-02 16:30:34 +02:00
parent 8a14255c5f
commit 09e5c8cadc
2 changed files with 21 additions and 3 deletions

View File

@ -11,7 +11,7 @@
"location": "London"
};
Bangle.pullOwmWeather = function(force) {
Bangle.pullOwmWeather = function(force, completionCallback) {
if (!force && responsePromise){
print("Waiting for response");
return;
@ -22,11 +22,13 @@
if (Bangle.http){
responsePromise = Bangle.http(uri, {id:"debug"}).then(event => {
print("Got event ", event);
parseWeather(event.resp);
let result = parseWeather(event.resp);
responsePromise = false;
if (completionCallback) completionCallback(result);
}).catch((e)=>{
print("Rejected call", e);
responsePromise = false;
if (completionCallback) completionCallback(e);
});
} else {
print("No http method found");
@ -64,6 +66,9 @@
print("Parsed data", json);
require("Storage").writeJSON('weather.json', json);
require("weather").emit("update", json.weather);
return undefined;
} else {
return "Not OWM data";
}
};

View File

@ -37,7 +37,20 @@
writeSettings("refresh",Math.round(v * 60));
}
},
"Force refresh": Bangle.pullOwmWeather
"Force refresh": ()=>{
E.showMessage("Reloading weather");
Bangle.pullOwmWeather(true, (e)=>{
if (e) {
E.showAlert(e,"Error").then(()=>{
E.showMenu(buildMainMenu());
});
} else {
E.showAlert("Success").then(()=>{
E.showMenu(buildMainMenu());
});
}
});
}
};
mainmenu["API key"] = function (){