From d9b1729ce368b36659190ca72bd2c14a2259e1da Mon Sep 17 00:00:00 2001 From: Anagh Hegde Date: Thu, 19 Dec 2024 15:24:23 +0530 Subject: [PATCH] chore: refactor crud methods (#38158) 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 DatasourceStorageRepository from the default CrudRepository. ## Automation /ok-to-test tags="@tag.ImportExport" ### :mag: Cypress test results > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: > Commit: c7efa6354d2cc1982121eeeab84ac15f1d400e9a > Cypress dashboard. > Tags: `@tag.ImportExport` > Spec: >
Thu, 19 Dec 2024 05:27:22 UTC ## Communication Should the DevRel and Marketing teams inform users about this change? - [ ] Yes - [ ] No ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Introduced new methods for retrieving and counting `NewAction` entities based on application ID and IDs collection. - **Bug Fixes** - Removed outdated methods from the `NewActionRepositoryCE` interface to streamline functionality. - **Refactor** - Enhanced repository capabilities for managing `NewAction` entities while maintaining backward compatibility. --- .../ce/CustomNewActionRepositoryCE.java | 10 +++++++++ .../ce/CustomNewActionRepositoryCEImpl.java | 21 +++++++++++++++++++ .../ce/NewActionRepositoryCE.java | 10 --------- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCE.java index 80351b502b..debbd0b8b5 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCE.java @@ -80,4 +80,14 @@ public interface CustomNewActionRepositoryCE extends AppsmithRepository findAllByApplicationIds(List branchedArtifactIds, List includedFields); + + // @Meta(cursorBatchSize = 10000) + // TODO Implement cursor with batch size + Flux findByApplicationId(String applicationId); + + // @Meta(cursorBatchSize = 10000) + // TODO Implement cursor with batch size + Flux findAllByIdIn(Iterable ids); + + Mono countByDeletedAtNull(); } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java index 0d56c4dcab..33d511dd09 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/CustomNewActionRepositoryCEImpl.java @@ -29,6 +29,7 @@ import java.time.Instant; import java.util.List; import java.util.Optional; import java.util.Set; +import java.util.stream.StreamSupport; import static org.springframework.data.mongodb.core.aggregation.Aggregation.group; import static org.springframework.data.mongodb.core.aggregation.Aggregation.match; @@ -488,4 +489,24 @@ public class CustomNewActionRepositoryCEImpl extends BaseAppsmithRepositoryImpl< .fields(includedFields) .all(); } + + @Override + public Flux findByApplicationId(String applicationId) { + return queryBuilder() + .criteria(Bridge.equal(NewAction.Fields.applicationId, applicationId)) + .all(); + } + + @Override + public Flux findAllByIdIn(Iterable ids) { + List idList = StreamSupport.stream(ids.spliterator(), false).toList(); + return queryBuilder().criteria(Bridge.in(NewAction.Fields.id, idList)).all(); + } + + @Override + public Mono countByDeletedAtNull() { + return queryBuilder() + .criteria(Bridge.exists(NewAction.Fields.deletedAt)) + .count(); + } } diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/NewActionRepositoryCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/NewActionRepositoryCE.java index 9b270f2fcb..f3bdb2c807 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/NewActionRepositoryCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/repositories/ce/NewActionRepositoryCE.java @@ -5,22 +5,12 @@ import com.appsmith.server.newactions.projections.IdAndDatasourceIdNewActionView import com.appsmith.server.projections.IdPoliciesOnly; import com.appsmith.server.repositories.BaseRepository; import com.appsmith.server.repositories.CustomNewActionRepository; -import org.springframework.data.mongodb.repository.Meta; import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; import java.util.List; public interface NewActionRepositoryCE extends BaseRepository, CustomNewActionRepository { - @Meta(cursorBatchSize = 10000) - Flux findByApplicationId(String applicationId); - - @Meta(cursorBatchSize = 10000) - Flux findAllByIdIn(Iterable ids); - - Mono countByDeletedAtNull(); - Flux findIdsAndPolicyMapByApplicationIdIn(List applicationIds); Flux findIdAndDatasourceIdByApplicationIdIn(List applicationIds);