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 42 import java.nio.file.Files;
43 43 import java.nio.file.Path;
44 44 import java.nio.file.Paths;
  45 +import java.util.Optional;
45 46
46 47 import static org.thingsboard.server.service.install.DatabaseHelper.objectMapper;
47 48
... ... @@ -243,6 +244,11 @@ public class InstallScripts {
243 244 try {
244 245 JsonNode oauth2ConfigTemplateJson = objectMapper.readTree(path.toFile());
245 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 252 oAuth2TemplateService.saveClientRegistrationTemplate(clientRegistrationTemplate);
247 253 } catch (Exception e) {
248 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 19 import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplate;
20 20
21 21 import java.util.List;
  22 +import java.util.Optional;
22 23
23 24 public interface OAuth2ConfigTemplateService {
24 25 OAuth2ClientRegistrationTemplate saveClientRegistrationTemplate(OAuth2ClientRegistrationTemplate clientRegistrationTemplate);
25 26
  27 + Optional<OAuth2ClientRegistrationTemplate> findClientRegistrationTemplateByProviderId(String providerId);
  28 +
26 29 OAuth2ClientRegistrationTemplate findClientRegistrationTemplateById(OAuth2ClientRegistrationTemplateId templateId);
27 30
28 31 List<OAuth2ClientRegistrationTemplate> findAllClientRegistrationTemplates();
... ...
... ... @@ -19,7 +19,11 @@ import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistrationTemplat
19 19 import org.thingsboard.server.dao.Dao;
20 20
21 21 import java.util.List;
  22 +import java.util.Optional;
22 23
23 24 public interface OAuth2ClientRegistrationTemplateDao extends Dao<OAuth2ClientRegistrationTemplate> {
  25 +
  26 + Optional<OAuth2ClientRegistrationTemplate> findByProviderId(String providerId);
  27 +
24 28 List<OAuth2ClientRegistrationTemplate> findAll();
25 29 }
... ...
... ... @@ -29,6 +29,7 @@ import org.thingsboard.server.dao.exception.DataValidationException;
29 29 import org.thingsboard.server.dao.service.DataValidator;
30 30
31 31 import java.util.List;
  32 +import java.util.Optional;
32 33
33 34 import static org.thingsboard.server.dao.service.Validator.validateId;
34 35 import static org.thingsboard.server.dao.service.Validator.validateString;
... ... @@ -37,6 +38,7 @@ import static org.thingsboard.server.dao.service.Validator.validateString;
37 38 @Service
38 39 public class OAuth2ConfigTemplateServiceImpl extends AbstractEntityService implements OAuth2ConfigTemplateService {
39 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 43 @Autowired
42 44 private OAuth2ClientRegistrationTemplateDao clientRegistrationTemplateDao;
... ... @@ -60,6 +62,13 @@ public class OAuth2ConfigTemplateServiceImpl extends AbstractEntityService imple
60 62 }
61 63
62 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 72 public OAuth2ClientRegistrationTemplate findClientRegistrationTemplateById(OAuth2ClientRegistrationTemplateId templateId) {
64 73 log.trace("Executing findClientRegistrationTemplateById [{}]", templateId);
65 74 validateId(templateId, INCORRECT_CLIENT_REGISTRATION_TEMPLATE_ID + templateId);
... ...
... ... @@ -26,6 +26,7 @@ import org.thingsboard.server.dao.sql.JpaAbstractDao;
26 26
27 27 import java.util.ArrayList;
28 28 import java.util.List;
  29 +import java.util.Optional;
29 30 import java.util.UUID;
30 31
31 32 @Component
... ... @@ -44,6 +45,12 @@ public class JpaOAuth2ClientRegistrationTemplateDao extends JpaAbstractDao<OAuth
44 45 }
45 46
46 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 54 public List<OAuth2ClientRegistrationTemplate> findAll() {
48 55 Iterable<OAuth2ClientRegistrationTemplateEntity> entities = repository.findAll();
49 56 List<OAuth2ClientRegistrationTemplate> result = new ArrayList<>();
... ...
... ... @@ -21,4 +21,7 @@ import org.thingsboard.server.dao.model.sql.OAuth2ClientRegistrationTemplateEnti
21 21 import java.util.UUID;
22 22
23 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 266 })
267 267 );
268 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 274 const device = {
275 275 name: this.deviceWizardFormGroup.get('name').value,
276 276 label: this.deviceWizardFormGroup.get('label').value,
... ...