Commit 40be6e588c5460f5223aa67343415b7dde449b67

Authored by Igor Kulikov
1 parent f1cc4fbd

Fix device wizard dialog. Fix install script for oauth2 client registration templates.

@@ -42,6 +42,7 @@ import java.nio.file.DirectoryStream; @@ -42,6 +42,7 @@ import java.nio.file.DirectoryStream;
42 import java.nio.file.Files; 42 import java.nio.file.Files;
43 import java.nio.file.Path; 43 import java.nio.file.Path;
44 import java.nio.file.Paths; 44 import java.nio.file.Paths;
  45 +import java.util.Optional;
45 46
46 import static org.thingsboard.server.service.install.DatabaseHelper.objectMapper; 47 import static org.thingsboard.server.service.install.DatabaseHelper.objectMapper;
47 48
@@ -243,6 +244,11 @@ public class InstallScripts { @@ -243,6 +244,11 @@ public class InstallScripts {
243 try { 244 try {
244 JsonNode oauth2ConfigTemplateJson = objectMapper.readTree(path.toFile()); 245 JsonNode oauth2ConfigTemplateJson = objectMapper.readTree(path.toFile());
245 OAuth2ClientRegistrationTemplate clientRegistrationTemplate = objectMapper.treeToValue(oauth2ConfigTemplateJson, OAuth2ClientRegistrationTemplate.class); 246 OAuth2ClientRegistrationTemplate clientRegistrationTemplate = objectMapper.treeToValue(oauth2ConfigTemplateJson, OAuth2ClientRegistrationTemplate.class);
  247 + Optional<OAuth2ClientRegistrationTemplate> existingClientRegistrationTemplate =
  248 + oAuth2TemplateService.findClientRegistrationTemplateByProviderId(clientRegistrationTemplate.getProviderId());
  249 + if (existingClientRegistrationTemplate.isPresent()) {
  250 + clientRegistrationTemplate.setId(existingClientRegistrationTemplate.get().getId());
  251 + }
246 oAuth2TemplateService.saveClientRegistrationTemplate(clientRegistrationTemplate); 252 oAuth2TemplateService.saveClientRegistrationTemplate(clientRegistrationTemplate);
247 } catch (Exception e) { 253 } catch (Exception e) {
248 log.error("Unable to load oauth2 config templates from json: [{}]", path.toString()); 254 log.error("Unable to load oauth2 config templates from json: [{}]", path.toString());
@@ -19,10 +19,13 @@ import org.thingsboard.server.common.data.id.OAuth2ClientRegistrationTemplateId; @@ -19,10 +19,13 @@ import org.thingsboard.server.common.data.id.OAuth2ClientRegistrationTemplateId;
19 import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplate; 19 import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplate;
20 20
21 import java.util.List; 21 import java.util.List;
  22 +import java.util.Optional;
22 23
23 public interface OAuth2ConfigTemplateService { 24 public interface OAuth2ConfigTemplateService {
24 OAuth2ClientRegistrationTemplate saveClientRegistrationTemplate(OAuth2ClientRegistrationTemplate clientRegistrationTemplate); 25 OAuth2ClientRegistrationTemplate saveClientRegistrationTemplate(OAuth2ClientRegistrationTemplate clientRegistrationTemplate);
25 26
  27 + Optional<OAuth2ClientRegistrationTemplate> findClientRegistrationTemplateByProviderId(String providerId);
  28 +
26 OAuth2ClientRegistrationTemplate findClientRegistrationTemplateById(OAuth2ClientRegistrationTemplateId templateId); 29 OAuth2ClientRegistrationTemplate findClientRegistrationTemplateById(OAuth2ClientRegistrationTemplateId templateId);
27 30
28 List<OAuth2ClientRegistrationTemplate> findAllClientRegistrationTemplates(); 31 List<OAuth2ClientRegistrationTemplate> findAllClientRegistrationTemplates();
@@ -19,7 +19,11 @@ import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplat @@ -19,7 +19,11 @@ import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplat
19 import org.thingsboard.server.dao.Dao; 19 import org.thingsboard.server.dao.Dao;
20 20
21 import java.util.List; 21 import java.util.List;
  22 +import java.util.Optional;
22 23
23 public interface OAuth2ClientRegistrationTemplateDao extends Dao<OAuth2ClientRegistrationTemplate> { 24 public interface OAuth2ClientRegistrationTemplateDao extends Dao<OAuth2ClientRegistrationTemplate> {
  25 +
  26 + Optional<OAuth2ClientRegistrationTemplate> findByProviderId(String providerId);
  27 +
24 List<OAuth2ClientRegistrationTemplate> findAll(); 28 List<OAuth2ClientRegistrationTemplate> findAll();
25 } 29 }
@@ -29,6 +29,7 @@ import org.thingsboard.server.dao.exception.DataValidationException; @@ -29,6 +29,7 @@ import org.thingsboard.server.dao.exception.DataValidationException;
29 import org.thingsboard.server.dao.service.DataValidator; 29 import org.thingsboard.server.dao.service.DataValidator;
30 30
31 import java.util.List; 31 import java.util.List;
  32 +import java.util.Optional;
32 33
33 import static org.thingsboard.server.dao.service.Validator.validateId; 34 import static org.thingsboard.server.dao.service.Validator.validateId;
34 import static org.thingsboard.server.dao.service.Validator.validateString; 35 import static org.thingsboard.server.dao.service.Validator.validateString;
@@ -37,6 +38,7 @@ import static org.thingsboard.server.dao.service.Validator.validateString; @@ -37,6 +38,7 @@ import static org.thingsboard.server.dao.service.Validator.validateString;
37 @Service 38 @Service
38 public class OAuth2ConfigTemplateServiceImpl extends AbstractEntityService implements OAuth2ConfigTemplateService { 39 public class OAuth2ConfigTemplateServiceImpl extends AbstractEntityService implements OAuth2ConfigTemplateService {
39 public static final String INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID = "Incorrect clientRegistrationTemplateId "; 40 public static final String INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID = "Incorrect clientRegistrationTemplateId ";
  41 + public static final String INCORRECT_CLIENT_REGISTRATION_PROVIDER_ID = "Incorrect clientRegistrationProviderId ";
40 42
41 @Autowired 43 @Autowired
42 private OAuth2ClientRegistrationTemplateDao clientRegistrationTemplateDao; 44 private OAuth2ClientRegistrationTemplateDao clientRegistrationTemplateDao;
@@ -60,6 +62,13 @@ public class OAuth2ConfigTemplateServiceImpl extends AbstractEntityService imple @@ -60,6 +62,13 @@ public class OAuth2ConfigTemplateServiceImpl extends AbstractEntityService imple
60 } 62 }
61 63
62 @Override 64 @Override
  65 + public Optional<OAuth2ClientRegistrationTemplate> findClientRegistrationTemplateByProviderId(String providerId) {
  66 + log.trace("Executing findClientRegistrationTemplateByProviderId [{}]", providerId);
  67 + validateString(providerId, INCORRECT_CLIENT_REGISTRATION_PROVIDER_ID + providerId);
  68 + return clientRegistrationTemplateDao.findByProviderId(providerId);
  69 + }
  70 +
  71 + @Override
63 public OAuth2ClientRegistrationTemplate findClientRegistrationTemplateById(OAuth2ClientRegistrationTemplateId templateId) { 72 public OAuth2ClientRegistrationTemplate findClientRegistrationTemplateById(OAuth2ClientRegistrationTemplateId templateId) {
64 log.trace("Executing findClientRegistrationTemplateById [{}]", templateId); 73 log.trace("Executing findClientRegistrationTemplateById [{}]", templateId);
65 validateId(templateId, INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID + templateId); 74 validateId(templateId, INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID + templateId);
@@ -26,6 +26,7 @@ import org.thingsboard.server.dao.sql.JpaAbstractDao; @@ -26,6 +26,7 @@ import org.thingsboard.server.dao.sql.JpaAbstractDao;
26 26
27 import java.util.ArrayList; 27 import java.util.ArrayList;
28 import java.util.List; 28 import java.util.List;
  29 +import java.util.Optional;
29 import java.util.UUID; 30 import java.util.UUID;
30 31
31 @Component 32 @Component
@@ -44,6 +45,12 @@ public class JpaOAuth2ClientRegistrationTemplateDao extends JpaAbstractDao<OAuth @@ -44,6 +45,12 @@ public class JpaOAuth2ClientRegistrationTemplateDao extends JpaAbstractDao<OAuth
44 } 45 }
45 46
46 @Override 47 @Override
  48 + public Optional<OAuth2ClientRegistrationTemplate> findByProviderId(String providerId) {
  49 + OAuth2ClientRegistrationTemplate oAuth2ClientRegistrationTemplate = DaoUtil.getData(repository.findByProviderId(providerId));
  50 + return Optional.ofNullable(oAuth2ClientRegistrationTemplate);
  51 + }
  52 +
  53 + @Override
47 public List<OAuth2ClientRegistrationTemplate> findAll() { 54 public List<OAuth2ClientRegistrationTemplate> findAll() {
48 Iterable<OAuth2ClientRegistrationTemplateEntity> entities = repository.findAll(); 55 Iterable<OAuth2ClientRegistrationTemplateEntity> entities = repository.findAll();
49 List<OAuth2ClientRegistrationTemplate> result = new ArrayList<>(); 56 List<OAuth2ClientRegistrationTemplate> result = new ArrayList<>();
@@ -21,4 +21,7 @@ import org.thingsboard.server.dao.model.sql.OAuth2ClientRegistrationTemplateEnti @@ -21,4 +21,7 @@ import org.thingsboard.server.dao.model.sql.OAuth2ClientRegistrationTemplateEnti
21 import java.util.UUID; 21 import java.util.UUID;
22 22
23 public interface OAuth2ClientRegistrationTemplateRepository extends CrudRepository<OAuth2ClientRegistrationTemplateEntity, UUID> { 23 public interface OAuth2ClientRegistrationTemplateRepository extends CrudRepository<OAuth2ClientRegistrationTemplateEntity, UUID> {
  24 +
  25 + OAuth2ClientRegistrationTemplateEntity findByProviderId(String providerId);
  26 +
24 } 27 }
@@ -266,11 +266,11 @@ export class DeviceWizardDialogComponent extends @@ -266,11 +266,11 @@ export class DeviceWizardDialogComponent extends
266 }) 266 })
267 ); 267 );
268 } else { 268 } else {
269 - return of(null); 269 + return of(this.deviceWizardFormGroup.get('deviceProfileId').value);
270 } 270 }
271 } 271 }
272 272
273 - private createDevice(profileId: EntityId = this.deviceWizardFormGroup.get('deviceProfileId').value): Observable<BaseData<HasId>> { 273 + private createDevice(profileId): Observable<BaseData<HasId>> {
274 const device = { 274 const device = {
275 name: this.deviceWizardFormGroup.get('name').value, 275 name: this.deviceWizardFormGroup.get('name').value,
276 label: this.deviceWizardFormGroup.get('label').value, 276 label: this.deviceWizardFormGroup.get('label').value,