[ecobee] Updates in prep for Dec 1 changes to Ecobee authorization process (#9065)
Signed-off-by: Mark Hilbush <mark@hilbush.com>
This commit is contained in:
@@ -117,25 +117,27 @@ public class EcobeeApi implements AccessTokenRefreshListener {
|
||||
}
|
||||
|
||||
public void createOAuthClientService() {
|
||||
logger.debug("API: Creating OAuth Client Service");
|
||||
OAuthClientService service = oAuthFactory.createOAuthClientService(
|
||||
bridgeHandler.getThing().getUID().getAsString(), ECOBEE_TOKEN_URL, null, apiKey, "", ECOBEE_SCOPE,
|
||||
false);
|
||||
String bridgeUID = bridgeHandler.getThing().getUID().getAsString();
|
||||
logger.debug("API: Creating OAuth Client Service for {}", bridgeUID);
|
||||
OAuthClientService service = oAuthFactory.createOAuthClientService(bridgeUID, ECOBEE_TOKEN_URL, null, apiKey,
|
||||
"", ECOBEE_SCOPE, false);
|
||||
service.addAccessTokenRefreshListener(this);
|
||||
ecobeeAuth = new EcobeeAuth(bridgeHandler, apiKey, apiTimeout, service, httpClient);
|
||||
oAuthClientService = service;
|
||||
}
|
||||
|
||||
public void deleteOAuthClientService() {
|
||||
logger.debug("API: Deleting OAuth Client Service");
|
||||
String bridgeUID = bridgeHandler.getThing().getUID().getAsString();
|
||||
logger.debug("API: Deleting OAuth Client Service for {}", bridgeUID);
|
||||
oAuthClientService.removeAccessTokenRefreshListener(this);
|
||||
oAuthFactory.deleteServiceAndAccessToken(bridgeHandler.getThing().getUID().getAsString());
|
||||
oAuthFactory.deleteServiceAndAccessToken(bridgeUID);
|
||||
}
|
||||
|
||||
public void closeOAuthClientService() {
|
||||
logger.debug("API: Closing OAuth Client Service");
|
||||
String bridgeUID = bridgeHandler.getThing().getUID().getAsString();
|
||||
logger.debug("API: Closing OAuth Client Service for {}", bridgeUID);
|
||||
oAuthClientService.removeAccessTokenRefreshListener(this);
|
||||
oAuthFactory.ungetOAuthService(bridgeHandler.getThing().getUID().getAsString());
|
||||
oAuthFactory.ungetOAuthService(bridgeUID);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -319,10 +321,8 @@ public class EcobeeApi implements AccessTokenRefreshListener {
|
||||
}
|
||||
|
||||
private boolean isSuccess(@Nullable AbstractResponseDTO response) {
|
||||
boolean success = true;
|
||||
if (response == null) {
|
||||
logger.info("API: Ecobee API returned null response");
|
||||
success = false;
|
||||
} else if (response.status.code.intValue() != 0) {
|
||||
logger.info("API: Ecobee API returned unsuccessful status: code={}, message={}", response.status.code,
|
||||
response.status.message);
|
||||
@@ -334,13 +334,16 @@ public class EcobeeApi implements AccessTokenRefreshListener {
|
||||
} else if (response.status.code == ECOBEE_TOKEN_EXPIRED) {
|
||||
// Check isAuthorized again to see if we can get a valid token
|
||||
logger.info("API: Unable to complete API call because token is expired");
|
||||
if (!isAuthorized()) {
|
||||
if (isAuthorized()) {
|
||||
return true;
|
||||
} else {
|
||||
logger.warn("API: isAuthorized was NOT successful on second try");
|
||||
}
|
||||
}
|
||||
success = false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
return success;
|
||||
return false;
|
||||
}
|
||||
|
||||
private Properties setHeaders() throws EcobeeAuthException {
|
||||
|
||||
@@ -80,6 +80,7 @@ public class EcobeeAuth {
|
||||
this.bridgeHandler = bridgeHandler;
|
||||
pinExpirationTime = 0;
|
||||
state = EcobeeAuthState.NEED_PIN;
|
||||
authResponse = null;
|
||||
}
|
||||
|
||||
public void setState(EcobeeAuthState newState) {
|
||||
|
||||
Reference in New Issue
Block a user