From e8bf9b45efb8aa08831f35467c3dc70125d457fa Mon Sep 17 00:00:00 2001 From: vzikratyi Date: Fri, 19 Jun 2020 11:42:45 +0300 Subject: [PATCH] Added repository and dao for OAuth2ClientRegistration --- .../sql/OAuth2ClientRegistrationEntity.java | 44 ++++++++++ .../oauth2/OAuth2ClientRegistrationDao.java | 15 ++++ .../JpaOAuth2ClientRegistrationDao.java | 83 +++++++++++++++++++ .../OAuth2ClientRegistrationRepository.java | 30 +++++++ 4 files changed, 172 insertions(+) create mode 100644 dao/src/main/java/org/thingsboard/server/dao/oauth2/OAuth2ClientRegistrationDao.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientRegistrationDao.java create mode 100644 dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRegistrationRepository.java diff --git a/dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java b/dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java index 7189b315c2..66e57faaf4 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java +++ b/dao/src/main/java/org/thingsboard/server/dao/model/sql/OAuth2ClientRegistrationEntity.java @@ -99,6 +99,50 @@ public class OAuth2ClientRegistrationEntity extends BaseSqlEntity find(); + + OAuth2ClientRegistration findById(String registrationId); + + OAuth2ClientRegistration save(OAuth2ClientRegistration clientRegistration); + + boolean removeById(String registrationId); +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientRegistrationDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientRegistrationDao.java new file mode 100644 index 0000000000..d2b951a072 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/JpaOAuth2ClientRegistrationDao.java @@ -0,0 +1,83 @@ +/** + * Copyright © 2016-2020 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.dao.sql.oauth2; + +import com.google.common.collect.Lists; +import com.google.common.util.concurrent.ListenableFuture; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.thingsboard.server.common.data.EntityType; +import org.thingsboard.server.common.data.id.TenantId; +import org.thingsboard.server.common.data.oauth2.OAuth2ClientRegistration; +import org.thingsboard.server.common.data.page.PageData; +import org.thingsboard.server.common.data.page.PageLink; +import org.thingsboard.server.dao.DaoUtil; +import org.thingsboard.server.dao.model.sql.OAuth2ClientRegistrationEntity; +import org.thingsboard.server.dao.oauth2.OAuth2ClientRegistrationDao; +import org.thingsboard.server.dao.sql.JpaAbstractDao; +import org.thingsboard.server.dao.util.SqlDao; + +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +import static org.thingsboard.server.common.data.UUIDConverter.fromTimeUUID; + +@Slf4j +@Component +@SqlDao +@RequiredArgsConstructor +public class JpaOAuth2ClientRegistrationDao implements OAuth2ClientRegistrationDao { + private final OAuth2ClientRegistrationRepository repository; + + @Override + @Transactional + public OAuth2ClientRegistration save(OAuth2ClientRegistration clientRegistration) { + OAuth2ClientRegistrationEntity entity; + try { + entity = new OAuth2ClientRegistrationEntity(clientRegistration); + } catch (Exception e) { + log.error("Can't create entity for domain object {}", clientRegistration, e); + throw new IllegalArgumentException("Can't create entity for domain object {" + clientRegistration + "}", e); + } + log.debug("Saving entity {}", entity); + entity = repository.save(entity); + return DaoUtil.getData(entity); + } + + @Override + public List find() { + List entities = Lists.newArrayList(repository.findAll()); + return DaoUtil.convertDataList(entities); + } + + @Override + public OAuth2ClientRegistration findById(String registrationId) { + log.debug("Get entity by registration id {}", registrationId); + Optional entity = repository.findByRegistrationId(registrationId); + return DaoUtil.getData(entity); + } + + @Override + public boolean removeById(String registrationId) { + repository.deleteByRegistrationId(registrationId); + log.debug("Remove request: {}", registrationId); + return !repository.existsByRegistrationId(registrationId); + } +} diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRegistrationRepository.java b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRegistrationRepository.java new file mode 100644 index 0000000000..2e6eb57209 --- /dev/null +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/oauth2/OAuth2ClientRegistrationRepository.java @@ -0,0 +1,30 @@ +/** + * Copyright © 2016-2020 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.dao.sql.oauth2; + +import org.springframework.data.repository.CrudRepository; +import org.thingsboard.server.dao.model.sql.OAuth2ClientRegistrationEntity; +import org.thingsboard.server.dao.util.SqlDao; + +import java.util.Optional; + +@SqlDao +public interface OAuth2ClientRegistrationRepository extends CrudRepository { + Optional findByRegistrationId(String registrationId); + int deleteByRegistrationId(String registrationId); + boolean existsByRegistrationId(String registrationId); + +}