Handle errors for the second step

This commit is contained in:
Joseph Abbey
2024-01-11 20:48:46 +00:00
parent 67731708b3
commit 22bb84e13b
2 changed files with 89 additions and 9 deletions

View File

@ -109,6 +109,11 @@ class Settings {
Properties.setValue("webhook_id", mWebhookId); Properties.setValue("webhook_id", mWebhookId);
} }
static function removeWebhookId() {
mWebhookId = "";
Properties.setValue("webhook_id", mWebhookId);
}
static function getApiUrl() as Lang.String { static function getApiUrl() as Lang.String {
return mApiUrl; return mApiUrl;
} }
@ -149,4 +154,12 @@ class Settings {
static function getIsWidgetStartNoTap() as Lang.Boolean { static function getIsWidgetStartNoTap() as Lang.Boolean {
return mIsWidgetStartNoTap; return mIsWidgetStartNoTap;
} }
static function disableBatteryLevel() {
mIsBatteryLevelEnabled = false;
Properties.setValue("enable_battery_level", mIsBatteryLevelEnabled);
if ((System has :ServiceDelegate) and (Background.getTemporalEventRegisteredTime() != null)) {
Background.deleteTemporalEvent();
}
}
} }

View File

@ -38,6 +38,7 @@ class WebhookManager {
if (Globals.scDebug) { if (Globals.scDebug) {
System.println("WebhookManager onReturnRequestWebhookId() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned."); System.println("WebhookManager onReturnRequestWebhookId() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
} }
Settings.disableBatteryLevel();
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoJson()); ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoJson());
break; break;
@ -45,6 +46,7 @@ class WebhookManager {
if (Globals.scDebug) { if (Globals.scDebug) {
System.println("WebhookManager onReturnRequestWebhookId() Response Code: 404, page not found. Check API URL setting."); System.println("WebhookManager onReturnRequestWebhookId() Response Code: 404, page not found. Check API URL setting.");
} }
Settings.disableBatteryLevel();
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getApiUrlNotFound()); ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getApiUrlNotFound());
break; break;
@ -76,6 +78,8 @@ class WebhookManager {
if (Globals.scDebug) { if (Globals.scDebug) {
System.println("WebhookManager onReturnRequestWebhookId(): No webhook id in response data."); System.println("WebhookManager onReturnRequestWebhookId(): No webhook id in response data.");
} }
Settings.disableBatteryLevel();
ErrorView.show(RezStrings.getWebhookFailed());
} }
break; break;
@ -83,6 +87,7 @@ class WebhookManager {
if (Globals.scDebug) { if (Globals.scDebug) {
System.println("WebhookManager onReturnRequestWebhookId(): Unhandled HTTP response code = " + responseCode); System.println("WebhookManager onReturnRequestWebhookId(): Unhandled HTTP response code = " + responseCode);
} }
Settings.disableBatteryLevel();
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getUnhandledHttpErr() + responseCode); ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getUnhandledHttpErr() + responseCode);
} }
} }
@ -119,17 +124,79 @@ class WebhookManager {
} }
function onReturnRegisterWebhookSensor(responseCode as Lang.Number, data as Null or Lang.Dictionary or Lang.String) as Void { function onReturnRegisterWebhookSensor(responseCode as Lang.Number, data as Null or Lang.Dictionary or Lang.String) as Void {
// TODO: Handle errors switch (responseCode) {
if (responseCode == 201) { case Communications.BLE_HOST_TIMEOUT:
if ((data.get("success") as Lang.Boolean or Null) == true) { case Communications.BLE_CONNECTION_UNAVAILABLE:
if (Globals.scDebug) { if (Globals.scDebug) {
System.println("WebhookManager onReturnRegisterWebhookSensor(): Success"); System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: BLE_HOST_TIMEOUT or BLE_CONNECTION_UNAVAILABLE, Bluetooth connection severed.");
} }
} Settings.removeWebhookId();
} else { ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoPhone() + ".");
if (Globals.scDebug) { break;
System.println("WebhookManager onReturnRegisterWebhookSensor(): Error: " + responseCode);
} case Communications.BLE_QUEUE_FULL:
if (Globals.scDebug) {
System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: BLE_QUEUE_FULL, API calls too rapid.");
}
Settings.removeWebhookId();
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getApiFlood());
break;
case Communications.NETWORK_REQUEST_TIMED_OUT:
if (Globals.scDebug) {
System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: NETWORK_REQUEST_TIMED_OUT, check Internet connection.");
}
Settings.removeWebhookId();
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoResponse());
break;
case Communications.NETWORK_RESPONSE_OUT_OF_MEMORY:
if (Globals.scDebug) {
System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: NETWORK_RESPONSE_OUT_OF_MEMORY, are we going too fast?");
}
Settings.removeWebhookId();
// Ignore and see if we can carry on
break;
case Communications.INVALID_HTTP_BODY_IN_NETWORK_RESPONSE:
if (Globals.scDebug) {
System.println("WebhookManager onReturnRegisterWebhookSensor() Response Code: INVALID_HTTP_BODY_IN_NETWORK_RESPONSE, check JSON is returned.");
}
Settings.removeWebhookId();
Settings.disableBatteryLevel();
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getNoJson());
break;
case 404:
if (Globals.scDebug) {
System.println("WebhookManager onReturnRequestWebhookId() Response Code: 404, page not found. Check API URL setting.");
}
Settings.removeWebhookId();
Settings.disableBatteryLevel();
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getApiUrlNotFound());
break;
case 201:
if ((data.get("success") as Lang.Boolean or Null) == true) {
if (Globals.scDebug) {
System.println("WebhookManager onReturnRegisterWebhookSensor(): Success");
}
} else {
if (Globals.scDebug) {
System.println("WebhookManager onReturnRegisterWebhookSensor(): Failure");
}
Settings.removeWebhookId();
Settings.disableBatteryLevel();
ErrorView.show(RezStrings.getWebhookFailed());
}
break;
default:
if (Globals.scDebug) {
System.println("WebhookManager onReturnRequestWebhookId(): Unhandled HTTP response code = " + responseCode);
}
Settings.removeWebhookId();
Settings.disableBatteryLevel();
ErrorView.show(RezStrings.getWebhookFailed() + "\n" + RezStrings.getUnhandledHttpErr() + responseCode);
} }
} }