diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java index aca8c12cd64..a4e0fe6779c 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ChartRepositoryHelper.java @@ -61,12 +61,6 @@ public class ChartRepositoryHelper extends EntityRepository{ return (chart.getService().getName() + "." + chart.getName()); } - @Transaction - public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listBefore(this, Chart.class, fields, serviceName, limitParam, before); - } - @Transaction public Chart create(Chart chart) throws IOException { validateRelationships(chart); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java index 0c4cc89cdd6..bcdf8af5856 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardRepositoryHelper.java @@ -77,12 +77,6 @@ public class DashboardRepositoryHelper extends EntityRepository { return new DashboardList(entities, beforeCursor, afterCursor, total); } - @Transaction - public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) - throws IOException, GeneralSecurityException, ParseException { - return EntityUtil.listBefore(this, Dashboard.class, fields, serviceName, limitParam, before); - } - @Transaction public Dashboard create(Dashboard dashboard) throws IOException { validateRelationships(dashboard); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java index 83ed0e6932f..94b34a85497 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseRepositoryHelper.java @@ -76,12 +76,6 @@ public class DatabaseRepositoryHelper extends EntityRepository { return refList; } - @Transaction - public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listBefore(this, Database.class, fields, serviceName, limitParam, before); - } - @Transaction public Database create(Database database) throws IOException { validateRelationships(database); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/EntityRepository.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/EntityRepository.java index 3845450017c..ddf455e2e66 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/EntityRepository.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/EntityRepository.java @@ -49,8 +49,23 @@ public abstract class EntityRepository { } @Transaction - public final List listBefore(String fqnPrefix, int limitParam, String before) { - return dao.listBefore(fqnPrefix, limitParam, before); + public final ResultList listBefore(Fields fields, String fqnPrefix, int limitParam, String before) throws IOException, GeneralSecurityException, ParseException { + // Reverse scrolling - Get one extra result used for computing before cursor + List jsons = dao.listBefore(fqnPrefix, limitParam + 1, CipherText.instance().decrypt(before)); + + List entities = new ArrayList<>(); + for (String json : jsons) { + entities.add(setFields(JsonUtils.readValue(json, entityClass), fields)); + } + int total = dao.listCount(fqnPrefix); + + String beforeCursor = null, afterCursor; + if (entities.size() > limitParam) { // If extra result exists, then previous page exists - return before cursor + entities.remove(0); + beforeCursor = getFullyQualifiedName(entities.get(0)); + } + afterCursor = getFullyQualifiedName(entities.get(entities.size() - 1)); + return getResultList(entities, beforeCursor, afterCursor, total); } @Transaction diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java index 190e98143fe..d7a4b0f19ac 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineRepositoryHelper.java @@ -64,41 +64,6 @@ public class PipelineRepositoryHelper extends EntityRepository { public static String getFQN(Pipeline pipeline) { return (pipeline.getService().getName() + "." + pipeline.getName()); } - - @Transaction - public PipelineList listBefore(Fields fields, String serviceName, int limitParam, String before) - throws IOException, GeneralSecurityException { - // Reverse scrolling - Get one extra result used for computing before cursor - List jsons = repo3.pipelineDAO().listBefore(serviceName, limitParam + 1, CipherText.instance().decrypt(before)); - List pipelines = new ArrayList<>(); - for (String json : jsons) { - pipelines.add(setFields(JsonUtils.readValue(json, Pipeline.class), fields)); - } - int total = repo3.pipelineDAO().listCount(serviceName); - - @Override - public Pipeline setFields(Pipeline entity, Fields fields) throws IOException, ParseException { - return PipelineRepository.this.setFields(entity, fields); - } - - @Override - public ResultList getResultList(List entities, String beforeCursor, String afterCursor, int total) throws GeneralSecurityException, UnsupportedEncodingException { - return new PipelineList(entities, beforeCursor, afterCursor, total); - } - }; - - @Transaction - public ResultList listAfter(Fields fields, String serviceName, int limitParam, String after) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listAfter(entityRepository, Pipeline.class, fields, serviceName, limitParam, after); - } - - @Transaction - public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) - throws IOException, GeneralSecurityException, ParseException { - return EntityUtil.listBefore(entityRepository, Pipeline.class, fields, serviceName, limitParam, before); - } - @Transaction public Pipeline create(Pipeline pipeline) throws IOException { validateRelationships(pipeline); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TableRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TableRepositoryHelper.java index eb7a416862f..991300bcca1 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TableRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TableRepositoryHelper.java @@ -120,12 +120,6 @@ public class TableRepositoryHelper extends EntityRepository { return (table.getDatabase().getName() + "." + table.getName()); } - @Transaction - public ResultList
listBefore(Fields fields, String databaseFQN, int limitParam, String before) - throws IOException, ParseException, GeneralSecurityException { - return EntityUtil.listBefore(this, Table.class, fields, databaseFQN, limitParam, before); - } - @Transaction public Table create(Table table, UUID databaseId) throws IOException { validateRelationships(table, databaseId); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java index 970d5bc5f1e..c6d9b449936 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TaskRepositoryHelper.java @@ -64,27 +64,6 @@ public class TaskRepositoryHelper extends EntityRepository{ private final TaskRepository3 repo3; - - @Transaction - public TaskList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, - GeneralSecurityException { - // Reverse scrolling - Get one extra result used for computing before cursor - List jsons = repo3.taskDAO().listBefore(serviceName, limitParam + 1, CipherText.instance().decrypt(before)); - List tasks = new ArrayList<>(); - for (String json : jsons) { - tasks.add(setFields(JsonUtils.readValue(json, Task.class), fields)); - } - int total = repo3.taskDAO().listCount(serviceName); - - String beforeCursor = null, afterCursor; - if (tasks.size() > limitParam) { // If extra result exists, then previous page exists - return before cursor - tasks.remove(0); - beforeCursor = tasks.get(0).getFullyQualifiedName(); - } - afterCursor = tasks.get(tasks.size() - 1).getFullyQualifiedName(); - return new TaskList(tasks, beforeCursor, afterCursor, total); - } - @Transaction public Task create(Task task) throws IOException { validateRelationships(task); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java index 72a1e180aa0..a488e5385f1 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TopicRepositoryHelper.java @@ -65,12 +65,6 @@ public class TopicRepositoryHelper extends EntityRepository { private final TopicRepository3 repo3; - @Transaction - public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listBefore(this, Topic.class, fields, serviceName, limitParam, before); - } - @Transaction public Topic create(Topic topic) throws IOException { validateRelationships(topic); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java index 7346285e525..1d8136f6d7f 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/UserRepositoryHelper.java @@ -84,12 +84,6 @@ public class UserRepositoryHelper extends EntityRepository { return new UserList(entities, beforeCursor, afterCursor, total); } - @Transaction - public ResultList listBefore(Fields fields, int limitParam, String before) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listBefore(this, User.class, fields, null, limitParam, before); - } - @Transaction public User get(String id) throws IOException { return validateUser(id); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/UserResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/UserResource.java index b9583fb030c..84cc32050fc 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/UserResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/teams/UserResource.java @@ -149,7 +149,7 @@ public class UserResource { ResultList users; if (before != null) { // Reverse paging - users = dao.listBefore(fields, limitParam, before); + users = dao.listBefore(fields, null, limitParam, before); } else { // Forward paging or first page users = dao.listAfter(fields, null, limitParam, after); } diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/EntityUtil.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/EntityUtil.java index a0c2f8dde2a..69282a6492c 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/EntityUtil.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/EntityUtil.java @@ -711,27 +711,6 @@ public final class EntityUtil { } } - public static ResultList listBefore(EntityRepository dao, Class clz, Fields fields, String databaseFQN, - int limitParam, String before) - throws IOException, ParseException, GeneralSecurityException { - // Reverse scrolling - Get one extra result used for computing before cursor - List jsons = dao.listBefore(databaseFQN, limitParam + 1, CipherText.instance().decrypt(before)); - - List entities = new ArrayList<>(); - for (String json : jsons) { - entities.add(dao.setFields(JsonUtils.readValue(json, clz), fields)); - } - int total = dao.listCount(databaseFQN); - - String beforeCursor = null, afterCursor; - if (entities.size() > limitParam) { // If extra result exists, then previous page exists - return before cursor - entities.remove(0); - beforeCursor = dao.getFullyQualifiedName(entities.get(0)); - } - afterCursor = dao.getFullyQualifiedName(entities.get(entities.size() - 1)); - return dao.getResultList(entities, beforeCursor, afterCursor, total); - } - public static List getIDList(List refList) { if (refList == null) { return null;