From 7d87c551a50d7e700449db8796525fff70ff7c79 Mon Sep 17 00:00:00 2001 From: Anagh Hegde Date: Thu, 19 Dec 2024 10:51:56 +0530 Subject: [PATCH] chore: refactor the crud method to custom repo class (#38138) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description As part of transaction support in PG, we are moving from using the jpa methods for database operations. This PR is refactoring the code to use custom repository class for DatasourceRepository from the default CrudRepository. ## Automation /ok-to-test tags="@tag.Datasource" ### :mag: Cypress test results > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: > Commit: df7dc42471f4790121f595ec04e1c29749ef6676 > Cypress dashboard. > Tags: `@tag.Datasource` > Spec: >
Wed, 18 Dec 2024 08:59:01 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No ## Summary by CodeRabbit - **New Features** - Introduced methods to retrieve `Datasource` objects by IDs and count non-deleted `Datasource` instances. - **Bug Fixes** - Removed outdated method signatures from the `DatasourceRepositoryCE` interface to streamline functionality. - **Documentation** - Added `@Repository` annotation to the `DatasourceRepositoryCE` interface for clarity on its role within the application. --- .../ce/CustomDatasourceRepositoryCE.java | 6 ++++++ .../ce/CustomDatasourceRepositoryCEImpl.java | 15 +++++++++++++++ .../repositories/ce/DatasourceRepositoryCE.java | 11 ++--------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomDatasourceRepositoryCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomDatasourceRepositoryCE.java index 8923668aa6..f328387046 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomDatasourceRepositoryCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomDatasourceRepositoryCE.java @@ -6,9 +6,15 @@ import com.appsmith.server.repositories.AppsmithRepository; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.List; + public interface CustomDatasourceRepositoryCE extends AppsmithRepository { Flux findAllByWorkspaceId(String workspaceId, AclPermission permission); Mono findByNameAndWorkspaceId(String name, String workspaceId, AclPermission aclPermission); + + Flux findByIdIn(List ids); + + Mono countByDeletedAtNull(); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomDatasourceRepositoryCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomDatasourceRepositoryCEImpl.java index eb982061b1..af2dce8aaa 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomDatasourceRepositoryCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomDatasourceRepositoryCEImpl.java @@ -3,11 +3,14 @@ package com.appsmith.server.repositories.ce; import com.appsmith.external.models.Datasource; import com.appsmith.server.acl.AclPermission; import com.appsmith.server.helpers.ce.bridge.Bridge; +import com.appsmith.server.helpers.ce.bridge.BridgeQuery; import com.appsmith.server.repositories.BaseAppsmithRepositoryImpl; import org.springframework.data.domain.Sort; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +import java.util.List; + public class CustomDatasourceRepositoryCEImpl extends BaseAppsmithRepositoryImpl implements CustomDatasourceRepositoryCE { @@ -28,4 +31,16 @@ public class CustomDatasourceRepositoryCEImpl extends BaseAppsmithRepositoryImpl .permission(aclPermission) .one(); } + + @Override + public Flux findByIdIn(List ids) { + final BridgeQuery q = Bridge.in(Datasource.Fields.id, ids); + return queryBuilder().criteria(q).all(); + } + + @Override + public Mono countByDeletedAtNull() { + final BridgeQuery q = Bridge.isNull(Datasource.Fields.deletedAt); + return queryBuilder().criteria(q).count(); + } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/DatasourceRepositoryCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/DatasourceRepositoryCE.java index 087b92cff5..71967e72cb 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/DatasourceRepositoryCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/DatasourceRepositoryCE.java @@ -4,19 +4,12 @@ import com.appsmith.external.models.Datasource; import com.appsmith.server.projections.IdPoliciesOnly; import com.appsmith.server.repositories.BaseRepository; import com.appsmith.server.repositories.CustomDatasourceRepository; +import org.springframework.stereotype.Repository; import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; -import java.util.List; import java.util.Set; +@Repository public interface DatasourceRepositoryCE extends BaseRepository, CustomDatasourceRepository { - - Flux findByIdIn(List ids); - - Flux findAllByWorkspaceId(String workspaceId); - - Mono countByDeletedAtNull(); - Flux findIdsAndPolicyMapByIdIn(Set datasourceIds); }