]> git.basschouten.com Git - openhab-addons.git/commitdiff
[netatmo] Removing feature restriction from binding configuration (#12795)
authorGaël L'hopital <gael@lhopital.org>
Tue, 24 May 2022 10:59:59 +0000 (12:59 +0200)
committerGitHub <noreply@github.com>
Tue, 24 May 2022 10:59:59 +0000 (12:59 +0200)
* Removing feature restriction from binding configuration

Signed-off-by: clinique <gael@lhopital.org>
bundles/org.openhab.binding.netatmo/README.md
bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/api/AuthenticationApi.java
bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/config/BindingConfiguration.java
bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/ApiBridgeHandler.java
bundles/org.openhab.binding.netatmo/src/main/resources/OH-INF/binding/binding.xml
bundles/org.openhab.binding.netatmo/src/main/resources/OH-INF/i18n/netatmo.properties
bundles/org.openhab.binding.netatmo/src/main/resources/OH-INF/i18n/netatmo_it.properties

index 078da46b6607be030859d519ac429628a81651c7..9e7cb90c66dd15974f6c42fa14d711796202c3b9 100644 (file)
@@ -30,7 +30,6 @@ The binding has the following configuration options:
 
 | Parameter    | Type          | Description                                                                                |
 |--------------|---------------|--------------------------------------------------------------------------------------------|
-| features     | String        | The perimeter of functionalities given to the binding WEATHER, AIR_CARE, ENERGY, SECURITY  |
 | readFriends  | Boolean       | Enables or disables the discovery of guest weather stations.                               |
 
 
index 5aabc4194ec2238accd33dcee25f8910e3e98623..926ce416855351f6e4480276d0b22863a69e865d 100644 (file)
@@ -43,6 +43,7 @@ import org.slf4j.LoggerFactory;
  */
 @NonNullByDefault
 public class AuthenticationApi extends RestManager {
+    private static final String ALL_SCOPES = FeatureArea.toScopeString(FeatureArea.AS_SET);
     private static final UriBuilder OAUTH_BUILDER = getApiBaseBuilder().path(PATH_OAUTH);
     private static final UriBuilder AUTH_BUILDER = OAUTH_BUILDER.clone().path(SUB_PATH_AUTHORIZE);
     private static final URI TOKEN_URI = OAUTH_BUILDER.clone().path(SUB_PATH_TOKEN).build();
@@ -58,12 +59,10 @@ public class AuthenticationApi extends RestManager {
         this.scheduler = scheduler;
     }
 
-    public String authorize(ApiHandlerConfiguration credentials, Set<FeatureArea> features, @Nullable String code,
-            @Nullable String redirectUri) throws NetatmoException {
-        String clientId = credentials.clientId;
-        String clientSecret = credentials.clientSecret;
-        if (!(clientId.isBlank() || clientSecret.isBlank())) {
-            Map<String, String> params = new HashMap<>(Map.of(SCOPE, toScopeString(features)));
+    public String authorize(ApiHandlerConfiguration credentials, @Nullable String code, @Nullable String redirectUri)
+            throws NetatmoException {
+        if (!(credentials.clientId.isBlank() || credentials.clientSecret.isBlank())) {
+            Map<String, String> params = new HashMap<>(Map.of(SCOPE, ALL_SCOPES));
             String refreshToken = credentials.refreshToken;
             if (!refreshToken.isBlank()) {
                 params.put(REFRESH_TOKEN, refreshToken);
@@ -73,7 +72,7 @@ public class AuthenticationApi extends RestManager {
                 }
             }
             if (params.size() > 1) {
-                return requestToken(clientId, clientSecret, params);
+                return requestToken(credentials.clientId, credentials.clientSecret, params);
             }
         }
         throw new IllegalArgumentException("Inconsistent configuration state, please file a bug report.");
@@ -118,12 +117,8 @@ public class AuthenticationApi extends RestManager {
         return tokenResponse.isPresent();
     }
 
-    private static String toScopeString(Set<FeatureArea> features) {
-        return FeatureArea.toScopeString(features.isEmpty() ? FeatureArea.AS_SET : features);
-    }
-
-    public static UriBuilder getAuthorizationBuilder(String clientId, Set<FeatureArea> features) {
-        return AUTH_BUILDER.clone().queryParam(CLIENT_ID, clientId).queryParam(SCOPE, toScopeString(features))
-                .queryParam(STATE, clientId);
+    public static UriBuilder getAuthorizationBuilder(String clientId) {
+        return AUTH_BUILDER.clone().queryParam(CLIENT_ID, clientId).queryParam(SCOPE, ALL_SCOPES).queryParam(STATE,
+                clientId);
     }
 }
index b52ec31a9d05b5cc43558b467f8ec0a162e99fb2..2ebe703f4763521e1d7d7aa843393b5b1ee32815 100644 (file)
  */
 package org.openhab.binding.netatmo.internal.config;
 
-import java.util.Set;
-
 import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.openhab.binding.netatmo.internal.api.data.NetatmoConstants.FeatureArea;
 
 /**
  * The {@link BindingConfiguration} is responsible for holding configuration of the binding itself.
@@ -24,11 +21,9 @@ import org.openhab.binding.netatmo.internal.api.data.NetatmoConstants.FeatureAre
  */
 @NonNullByDefault
 public class BindingConfiguration {
-    public Set<FeatureArea> features = Set.of();
     public boolean readFriends = false;
 
     public void update(BindingConfiguration newConfig) {
-        this.features = newConfig.features;
         this.readFriends = newConfig.readFriends;
     }
 }
index e4f0e65bf18d6b3bd8b45c758c27f326b7aeeb46..a332892fad6958adbed87d3f4b6e3267d34dc8f4 100644 (file)
@@ -125,7 +125,7 @@ public class ApiBridgeHandler extends BaseBridgeHandler {
                 try {
                     logger.debug("Connecting to Netatmo API.");
 
-                    String refreshToken = connectApi.authorize(configuration, bindingConf.features, code, redirectUri);
+                    String refreshToken = connectApi.authorize(configuration, code, redirectUri);
 
                     if (configuration.refreshToken.isBlank()) {
                         Configuration thingConfig = editConfiguration();
@@ -273,7 +273,7 @@ public class ApiBridgeHandler extends BaseBridgeHandler {
     }
 
     public UriBuilder formatAuthorizationUrl() {
-        return AuthenticationApi.getAuthorizationBuilder(getId(), bindingConf.features);
+        return AuthenticationApi.getAuthorizationBuilder(getId());
     }
 
     @Override
index 976fa7a65e82aa801e4fe2a00e7023ec091c5634..575b33180ce5e384db0f4109b2bb294efa15bdf3 100644 (file)
@@ -9,19 +9,6 @@
 
 
        <config-description>
-               <parameter name="features" type="text" required="true" multiple="true">
-                       <label>Feature Area</label>
-                       <description>Defines the set of capabilities you want to operate on.</description>
-                       <options>
-                               <option value="AIR_CARE">Air Care</option>
-                               <option value="WEATHER">Weather</option>
-                               <option value="ENERGY">Energy</option>
-                               <option value="SECURITY">Security</option>
-                       </options>
-                       <limitToOptions>true</limitToOptions>
-                       <default>WEATHER</default>
-               </parameter>
-
                <parameter name="readFriends" type="boolean">
                        <label>Access Guests</label>
                        <description>For Weather Stations: A friend gave you access to their Netatmo Weather Station.</description>
index cd840b3f802a83ee28411368b7dc1738908d997d..c24c75c094235ec63145f2474f8b461d183da539 100644 (file)
@@ -5,12 +5,6 @@ binding.netatmo.description = The Netatmo binding integrates Weather Station wit
 
 # binding config
 
-binding.config.netatmo.features.label = Feature Area
-binding.config.netatmo.features.description = Defines the set of capabilities you want to operate on.
-binding.config.netatmo.features.option.AIR_CARE = Air Care
-binding.config.netatmo.features.option.WEATHER = Weather
-binding.config.netatmo.features.option.ENERGY = Energy
-binding.config.netatmo.features.option.SECURITY = Security
 binding.config.netatmo.readFriends.label = Access Guests
 binding.config.netatmo.readFriends.description = For Weather Stations: A friend gave you access to their Netatmo Weather Station.
 
index 42d867d2a7e68c28eb526368698793afbfed7413..3cdf85459b6991decad63743a8da605660ab9513 100644 (file)
@@ -5,12 +5,6 @@ binding.netatmo.description = Il binding Netatmo integra la Stazione Meteo con a
 
 # binding config
 
-binding.config.netatmo.features.label = Area Feature
-binding.config.netatmo.features.description = Definisce il set di funzionalità su cui si desidera operare.
-binding.config.netatmo.features.option.AIR_CARE = Cura Aria
-binding.config.netatmo.features.option.WEATHER = Meteo
-binding.config.netatmo.features.option.ENERGY = Energia
-binding.config.netatmo.features.option.SECURITY = Sicurezza
 binding.config.netatmo.readFriends.label = Accesso Ospiti
 binding.config.netatmo.readFriends.description = Per le Stazioni Meteorologiche\: Un amico ti ha dato accesso alla sua Stazione Meteo Netatmo.