Browse Source

minor refactoring

pull/10918/head
dashevchenko 2 years ago
parent
commit
1619e60380
  1. 22
      application/src/main/java/org/thingsboard/server/controller/MobileApplicationController.java
  2. 2
      common/data/src/main/java/org/thingsboard/server/common/data/mobile/AndroidConfig.java
  3. 21
      common/data/src/main/java/org/thingsboard/server/common/data/mobile/HasStoreLink.java
  4. 2
      common/data/src/main/java/org/thingsboard/server/common/data/mobile/IosConfig.java

22
application/src/main/java/org/thingsboard/server/controller/MobileApplicationController.java

@ -34,6 +34,7 @@ import org.thingsboard.common.util.JacksonUtil;
import org.thingsboard.server.common.data.exception.ThingsboardException;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.mobile.AndroidConfig;
import org.thingsboard.server.common.data.mobile.HasStoreLink;
import org.thingsboard.server.common.data.mobile.IosConfig;
import org.thingsboard.server.common.data.mobile.MobileAppSettings;
import org.thingsboard.server.common.data.security.model.JwtPair;
@ -174,13 +175,14 @@ public class MobileApplicationController extends BaseController {
@GetMapping(value = "/api/noauth/qr")
public ResponseEntity<?> getApplicationRedirect(@RequestHeader(value = "User-Agent") String userAgent) {
MobileAppSettings mobileAppSettings = mobileAppSettingsService.getMobileAppSettings(TenantId.SYS_TENANT_ID);
boolean isDefaultApp = mobileAppSettings.isUseDefaultApp();
if (userAgent.contains("Android")) {
return ResponseEntity.status(HttpStatus.FOUND)
.header("Location", getGoogleStoreLink(mobileAppSettings))
.header("Location", getAppStoreLink(isDefaultApp, mobileAppSettings.getAndroidConfig(), DEFAULT_GOOGLE_APP_STORE_LINK))
.build();
} else if (userAgent.contains("iPhone") || userAgent.contains("iPad")) {
return ResponseEntity.status(HttpStatus.FOUND)
.header("Location", getAppleStoreLink(mobileAppSettings))
.header("Location", getAppStoreLink(isDefaultApp, mobileAppSettings.getIosConfig(), DEFAULT_APPLE_APP_STORE_LINK))
.build();
} else {
return ResponseEntity.status(HttpStatus.NOT_FOUND)
@ -195,19 +197,15 @@ public class MobileApplicationController extends BaseController {
public JsonNode getMobileAppStoreLinks() {
MobileAppSettings mobileAppSettings = mobileAppSettingsService.getMobileAppSettings(TenantId.SYS_TENANT_ID);
ObjectNode infoObject = JacksonUtil.newObjectNode();
infoObject.put("googlePlayLink", getGoogleStoreLink(mobileAppSettings));
infoObject.put("appStoreLink", getAppleStoreLink(mobileAppSettings));
boolean isDefaultApp = mobileAppSettings.isUseDefaultApp();
infoObject.put("googlePlayLink", getAppStoreLink(isDefaultApp, mobileAppSettings.getAndroidConfig(), DEFAULT_GOOGLE_APP_STORE_LINK));
infoObject.put("appStoreLink", getAppStoreLink(isDefaultApp, mobileAppSettings.getIosConfig(), DEFAULT_APPLE_APP_STORE_LINK));
return infoObject;
}
private String getGoogleStoreLink(MobileAppSettings mobileAppSettings) {
return mobileAppSettings.isUseDefaultApp() ? DEFAULT_GOOGLE_APP_STORE_LINK :
Optional.ofNullable(mobileAppSettings.getAndroidConfig().getStoreLink()).orElse(DEFAULT_GOOGLE_APP_STORE_LINK);
}
private String getAppleStoreLink(MobileAppSettings mobileAppSettings) {
return mobileAppSettings.isUseDefaultApp() ? DEFAULT_APPLE_APP_STORE_LINK :
Optional.ofNullable(mobileAppSettings.getIosConfig().getStoreLink()).orElse(DEFAULT_APPLE_APP_STORE_LINK);
private String getAppStoreLink(boolean isDefault, HasStoreLink storeLink, String defaultAppStoreLink) {
return isDefault ? defaultAppStoreLink :
Optional.ofNullable(storeLink.getStoreLink()).orElse(defaultAppStoreLink);
}
}

2
common/data/src/main/java/org/thingsboard/server/common/data/mobile/AndroidConfig.java

@ -27,7 +27,7 @@ import org.thingsboard.server.common.data.validation.NoXss;
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class AndroidConfig {
public class AndroidConfig implements HasStoreLink {
private boolean enabled;
@NoXss

21
common/data/src/main/java/org/thingsboard/server/common/data/mobile/HasStoreLink.java

@ -0,0 +1,21 @@
/**
* Copyright © 2016-2024 The Thingsboard Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.thingsboard.server.common.data.mobile;
public interface HasStoreLink {
String getStoreLink();
}

2
common/data/src/main/java/org/thingsboard/server/common/data/mobile/IosConfig.java

@ -27,7 +27,7 @@ import org.thingsboard.server.common.data.validation.NoXss;
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class IosConfig {
public class IosConfig implements HasStoreLink {
private boolean enabled;
@NoXss

Loading…
Cancel
Save