From d686738863c1815ee099073e22ebf1e33c9a9ecd Mon Sep 17 00:00:00 2001 From: sureshms Date: Fri, 22 Oct 2021 06:07:19 -0700 Subject: [PATCH] Move listAfter to EntityRepository and remove other implementations --- .../catalog/CatalogHealthCheck.java | 2 +- .../catalog/jdbi3/ChartRepositoryHelper.java | 8 +--- .../jdbi3/DashboardRepositoryHelper.java | 8 +--- .../DashboardServiceRepositoryHelper.java | 2 +- .../jdbi3/DatabaseRepositoryHelper.java | 8 +--- .../DatabaseServiceRepositoryHelper.java | 2 +- .../catalog/jdbi3/EntityRepository.java | 33 ++++++++++++---- .../MessagingServiceRepositoryHelper.java | 2 +- .../jdbi3/MetricsRepositoryHelper.java | 2 +- .../catalog/jdbi3/ModelRepositoryHelper.java | 2 +- .../jdbi3/PipelineRepositoryHelper.java | 20 +--------- .../PipelineServiceRepositoryHelper.java | 2 +- .../catalog/jdbi3/ReportRepositoryHelper.java | 2 +- .../catalog/jdbi3/TableRepositoryHelper.java | 8 +--- .../catalog/jdbi3/TaskRepositoryHelper.java | 23 +---------- .../catalog/jdbi3/TeamRepositoryHelper.java | 2 +- .../catalog/jdbi3/TopicRepositoryHelper.java | 8 +--- .../catalog/jdbi3/UserRepositoryHelper.java | 8 +--- .../resources/pipelines/PipelineResource.java | 38 +++++++++---------- .../catalog/resources/tasks/TaskResource.java | 24 +++++------- .../catalog/resources/teams/UserResource.java | 2 +- .../openmetadata/catalog/util/EntityUtil.java | 22 ----------- 22 files changed, 72 insertions(+), 156 deletions(-) diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/CatalogHealthCheck.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/CatalogHealthCheck.java index 0457b2932fb..f229b800d99 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/CatalogHealthCheck.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/CatalogHealthCheck.java @@ -39,7 +39,7 @@ public class CatalogHealthCheck extends HealthCheck { @Override protected Result check() throws Exception { try { - userRepositoryHelper.listAfter(fields, 1, ""); + userRepositoryHelper.listAfter(fields, null, 1, ""); return Result.healthy(); } catch (IOException e) { return Result.unhealthy(e.getMessage()); 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 2b036bef777..aca8c12cd64 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 @@ -51,7 +51,7 @@ public class ChartRepositoryHelper extends EntityRepository{ private static final Fields CHART_PATCH_FIELDS = new Fields(ChartResource.FIELD_LIST, "owner,service,tags"); public ChartRepositoryHelper(ChartRepository3 repo3) { - super(repo3.chartDAO()); + super(Chart.class, repo3.chartDAO()); this.repo3 = repo3; } @@ -61,12 +61,6 @@ public class ChartRepositoryHelper extends EntityRepository{ return (chart.getService().getName() + "." + chart.getName()); } - @Transaction - public ResultList listAfter(Fields fields, String serviceName, int limitParam, String after) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listAfter(this, Chart.class, fields, serviceName, limitParam, after); - } - @Transaction public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, GeneralSecurityException, ParseException { 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 03e41f3cc78..0c4cc89cdd6 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 @@ -56,7 +56,7 @@ public class DashboardRepositoryHelper extends EntityRepository { "owner,service,tags,charts"); public DashboardRepositoryHelper(DashboardRepository3 repo3) { - super(repo3.dashboardDAO()); + super(Dashboard.class, repo3.dashboardDAO()); this.repo3 = repo3; } @@ -77,12 +77,6 @@ public class DashboardRepositoryHelper extends EntityRepository { return new DashboardList(entities, beforeCursor, afterCursor, total); } - @Transaction - public ResultList listAfter(Fields fields, String serviceName, int limitParam, String after) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listAfter(this, Dashboard.class, fields, serviceName, limitParam, after); - } - @Transaction public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, GeneralSecurityException, ParseException { diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepositoryHelper.java index 6ecb38a212c..83d673ad303 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DashboardServiceRepositoryHelper.java @@ -42,7 +42,7 @@ public class DashboardServiceRepositoryHelper extends EntityRepository { "owner,service, usageSummary"); public DatabaseRepositoryHelper(DatabaseRepository3 repo3) { - super(repo3.databaseDAO()); + super(Database.class, repo3.databaseDAO()); this.repo3 = repo3; } @@ -76,12 +76,6 @@ public class DatabaseRepositoryHelper extends EntityRepository { return refList; } - @Transaction - public ResultList listAfter(Fields fields, String serviceName, int limitParam, String after) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listAfter(this, Database.class, fields, serviceName, limitParam, after); - } - @Transaction public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, GeneralSecurityException, ParseException { diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepositoryHelper.java index 7ac7ea55c63..831d08bc94c 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/DatabaseServiceRepositoryHelper.java @@ -42,7 +42,7 @@ public class DatabaseServiceRepositoryHelper extends EntityRepository { + private final Class entityClass; private final EntityDAO dao; - EntityRepository(EntityDAO entityDAO) { + EntityRepository(Class entityClass, EntityDAO entityDAO) { + this.entityClass = entityClass; this.dao = entityDAO; } - /** - * DAO related operations - */ @Transaction - public final List listAfter(String fqnPrefix, int limitParam, String after) { - return dao.listAfter(fqnPrefix, limitParam, after); + public final ResultList listAfter(Fields fields, String fqnPrefix, int limitParam, String after) + throws GeneralSecurityException, IOException, ParseException { + // forward scrolling, if after == null then first page is being asked + List jsons = dao.listAfter(fqnPrefix, limitParam + 1, after == null ? "" : + CipherText.instance().decrypt(after)); + + List entities = new ArrayList<>(); + for (String json : jsons) { + entities.add(setFields(JsonUtils.readValue(json, entityClass), fields)); + } + int total = dao.listCount(fqnPrefix); + + String beforeCursor, afterCursor = null; + beforeCursor = after == null ? null : getFullyQualifiedName(entities.get(0)); + if (entities.size() > limitParam) { // If extra result exists, then next page exists - return after cursor + entities.remove(limitParam); + afterCursor = getFullyQualifiedName(entities.get(limitParam - 1)); + } + return getResultList(entities, beforeCursor, afterCursor, total); } @Transaction diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepositoryHelper.java index 640c7c8d5fc..f0da060fc80 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/MessagingServiceRepositoryHelper.java @@ -41,7 +41,7 @@ public class MessagingServiceRepositoryHelper extends EntityRepository { private static final Fields METRICS_UPDATE_FIELDS = new Fields(MetricsResource.FIELD_LIST, "owner,service"); public MetricsRepositoryHelper(MetricsRepository3 repo3) { - super(repo3.metricsDAO()); + super(Metrics.class, repo3.metricsDAO()); this.repo3 = repo3; } diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java index d863a2fc3bf..f685befa0f3 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ModelRepositoryHelper.java @@ -56,7 +56,7 @@ public class ModelRepositoryHelper extends EntityRepository { "owner,dashboard,tags"); public ModelRepositoryHelper(ModelRepository3 repo3) { - super(repo3.modelDAO()); + super(Model.class, repo3.modelDAO()); this.repo3 = repo3; } 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 49db1b4915c..190e98143fe 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 @@ -55,7 +55,7 @@ public class PipelineRepositoryHelper extends EntityRepository { "owner,service,tags,tasks"); public PipelineRepositoryHelper(PipelineRepository3 repo3) { - super(repo3.pipelineDAO()); + super(Pipeline.class, repo3.pipelineDAO()); this.repo3 = repo3; } @@ -65,24 +65,6 @@ public class PipelineRepositoryHelper extends EntityRepository { return (pipeline.getService().getName() + "." + pipeline.getName()); } - @Transaction - public PipelineList listAfter(Fields fields, String serviceName, int limitParam, String after) throws IOException, - GeneralSecurityException { - // forward scrolling, if after == null then first page is being asked being asked - List jsons = repo3.pipelineDAO().listAfter(serviceName, limitParam + 1, after == null ? "" : - CipherText.instance().decrypt(after)); - - 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 int listCount(String fqnPrefix) { - return pipelineDAO().listCount(fqnPrefix); - } - @Transaction public PipelineList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, GeneralSecurityException { diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineServiceRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineServiceRepositoryHelper.java index 03acd3fe0d2..a3cd803ee27 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineServiceRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/PipelineServiceRepositoryHelper.java @@ -40,7 +40,7 @@ import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityN public class PipelineServiceRepositoryHelper extends EntityRepository { public PipelineServiceRepositoryHelper(PipelineServiceRepository3 repo3) { - super(repo3.pipelineServiceDAO()); + super(PipelineService.class, repo3.pipelineServiceDAO()); this.repo3 = repo3; } diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ReportRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ReportRepositoryHelper.java index c2c286888ce..7fae08b5a98 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ReportRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/ReportRepositoryHelper.java @@ -40,7 +40,7 @@ public class ReportRepositoryHelper extends EntityRepository{ private static final Fields REPORT_UPDATE_FIELDS = new Fields(ReportResource.FIELD_LIST, "owner,service"); public ReportRepositoryHelper(ReportRepository3 repo3) { - super(repo3.reportDAO()); + super(Report.class, repo3.reportDAO()); this.repo3 = repo3; } 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 0d2304b6b4a..eb7a416862f 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 @@ -81,7 +81,7 @@ public class TableRepositoryHelper extends EntityRepository { "owner,columns,database,tags,tableConstraints"); public TableRepositoryHelper(TableRepository3 repo3) { - super(repo3.tableDAO()); + super(Table.class, repo3.tableDAO()); this.repo3 = repo3; } @@ -120,12 +120,6 @@ public class TableRepositoryHelper extends EntityRepository
{ return (table.getDatabase().getName() + "." + table.getName()); } - @Transaction - public ResultList
listAfter(Fields fields, String databaseFQN, int limitParam, String after) - throws IOException, ParseException, GeneralSecurityException { - return EntityUtil.listAfter(this, Table.class, fields, databaseFQN, limitParam, after); - } - @Transaction public ResultList
listBefore(Fields fields, String databaseFQN, int limitParam, String before) throws IOException, ParseException, GeneralSecurityException { 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 7cda4eaeb8c..970d5bc5f1e 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 @@ -58,33 +58,12 @@ public class TaskRepositoryHelper extends EntityRepository{ } public TaskRepositoryHelper(TaskRepository3 repo3) { - super(repo3.taskDAO()); + super(Task.class,repo3.taskDAO()); this.repo3 = repo3; } private final TaskRepository3 repo3; - @Transaction - public TaskList listAfter(Fields fields, String serviceName, int limitParam, String after) throws IOException, - GeneralSecurityException { - // forward scrolling, if after == null then first page is being asked being asked - List jsons = repo3.taskDAO().listAfter(serviceName, limitParam + 1, after == null ? "" : - CipherText.instance().decrypt(after)); - - 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, afterCursor = null; - beforeCursor = after == null ? null : tasks.get(0).getFullyQualifiedName(); - if (tasks.size() > limitParam) { // If extra result exists, then next page exists - return after cursor - tasks.remove(limitParam); - afterCursor = tasks.get(limitParam - 1).getFullyQualifiedName(); - } - return new TaskList(tasks, beforeCursor, afterCursor, total); - } @Transaction public TaskList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java index 66d20583f90..cb51ea8b128 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/jdbi3/TeamRepositoryHelper.java @@ -51,7 +51,7 @@ public class TeamRepositoryHelper extends EntityRepository { static final Fields TEAM_PATCH_FIELDS = new Fields(TeamResource.FIELD_LIST, "profile,users"); public TeamRepositoryHelper(TeamRepository3 repo3) { - super(repo3.teamDAO()); + super(Team.class,repo3.teamDAO()); this.repo3 = repo3; } 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 7d4ff2e9c21..72a1e180aa0 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 @@ -59,18 +59,12 @@ public class TopicRepositoryHelper extends EntityRepository { } public TopicRepositoryHelper(TopicRepository3 repo3) { - super(repo3.topicDAO()); + super(Topic.class, repo3.topicDAO()); this.repo3 = repo3; } private final TopicRepository3 repo3; - @Transaction - public ResultList listAfter(Fields fields, String serviceName, int limitParam, String after) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listAfter(this, Topic.class, fields, serviceName, limitParam, after); - } - @Transaction public ResultList listBefore(Fields fields, String serviceName, int limitParam, String before) throws IOException, GeneralSecurityException, ParseException { 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 8f1fddd0011..7346285e525 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 @@ -63,7 +63,7 @@ public class UserRepositoryHelper extends EntityRepository { public UserRepositoryHelper(UserRepository3 repo3) { - super(repo3.userDAO()); + super(User.class,repo3.userDAO()); this.repo3 = repo3; } @@ -84,12 +84,6 @@ public class UserRepositoryHelper extends EntityRepository { return new UserList(entities, beforeCursor, afterCursor, total); } - @Transaction - public ResultList listAfter(Fields fields, int limitParam, String after) throws IOException, - GeneralSecurityException, ParseException { - return EntityUtil.listAfter(this, User.class, fields, null, limitParam, after); - } - @Transaction public ResultList listBefore(Fields fields, int limitParam, String before) throws IOException, GeneralSecurityException, ParseException { diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/pipelines/PipelineResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/pipelines/PipelineResource.java index 94fc4a2fac9..d7bb6be4933 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/pipelines/PipelineResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/pipelines/PipelineResource.java @@ -136,25 +136,25 @@ public class PipelineResource { schema = @Schema(implementation = PipelineList.class))) }) public ResultList list(@Context UriInfo uriInfo, - @Context SecurityContext securityContext, - @Parameter(description = "Fields requested in the returned resource", - schema = @Schema(type = "string", example = FIELDS)) - @QueryParam("fields") String fieldsParam, - @Parameter(description = "Filter pipelines by service name", - schema = @Schema(type = "string", example = "airflow")) - @QueryParam("service") String serviceParam, - @Parameter(description = "Limit the number pipelines returned. (1 to 1000000, " + - "default = 10)") - @DefaultValue("10") - @Min(1) - @Max(1000000) - @QueryParam("limit") int limitParam, - @Parameter(description = "Returns list of pipelines before this cursor", - schema = @Schema(type = "string")) - @QueryParam("before") String before, - @Parameter(description = "Returns list of pipelines after this cursor", - schema = @Schema(type = "string")) - @QueryParam("after") String after + @Context SecurityContext securityContext, + @Parameter(description = "Fields requested in the returned resource", + schema = @Schema(type = "string", example = FIELDS)) + @QueryParam("fields") String fieldsParam, + @Parameter(description = "Filter pipelines by service name", + schema = @Schema(type = "string", example = "airflow")) + @QueryParam("service") String serviceParam, + @Parameter(description = "Limit the number pipelines returned. (1 to 1000000, " + + "default = 10)") + @DefaultValue("10") + @Min(1) + @Max(1000000) + @QueryParam("limit") int limitParam, + @Parameter(description = "Returns list of pipelines before this cursor", + schema = @Schema(type = "string")) + @QueryParam("before") String before, + @Parameter(description = "Returns list of pipelines after this cursor", + schema = @Schema(type = "string")) + @QueryParam("after") String after ) throws IOException, GeneralSecurityException, ParseException { RestUtil.validateCursors(before, after); Fields fields = new Fields(FIELD_LIST, fieldsParam); diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tasks/TaskResource.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tasks/TaskResource.java index 4427468fa3c..9ced9761339 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tasks/TaskResource.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/resources/tasks/TaskResource.java @@ -29,7 +29,6 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse; import org.openmetadata.catalog.api.data.CreateTask; import org.openmetadata.catalog.entity.data.Task; import org.openmetadata.catalog.jdbi3.TaskRepositoryHelper; -import org.openmetadata.catalog.resources.Collection; import org.openmetadata.catalog.security.CatalogAuthorizer; import org.openmetadata.catalog.security.SecurityUtil; import org.openmetadata.catalog.type.EntityReference; @@ -125,7 +124,6 @@ public class TaskResource { .split(",")); @GET - @Valid @Operation(summary = "List tasks", tags = "tasks", description = "Get a list of tasks, optionally filtered by `service` it belongs to. Use `fields` " + "parameter to get only necessary fields. Use cursor-based pagination to limit the number " + @@ -135,30 +133,28 @@ public class TaskResource { content = @Content(mediaType = "application/json", schema = @Schema(implementation = TaskList.class))) }) - public TaskList list(@Context UriInfo uriInfo, - @Context SecurityContext securityContext, - @Parameter(description = "Fields requested in the returned resource", + public ResultList list(@Context UriInfo uriInfo, + @Context SecurityContext securityContext, + @Parameter(description = "Fields requested in the returned resource", schema = @Schema(type = "string", example = FIELDS)) @QueryParam("fields") String fieldsParam, - @Parameter(description = "Filter tasks by service name", + @Parameter(description = "Filter tasks by service name", schema = @Schema(type = "string", example = "superset")) @QueryParam("service") String serviceParam, - @Parameter(description = "Limit the number tasks returned. (1 to 1000000, default = 10)") + @Parameter(description = "Limit the number tasks returned. (1 to 1000000, default = 10)") @DefaultValue("10") - @Min(1) - @Max(1000000) - @QueryParam("limit") int limitParam, - @Parameter(description = "Returns list of tasks before this cursor", + @QueryParam("limit") @Min(1) @Max(1000000) int limitParam, + @Parameter(description = "Returns list of tasks before this cursor", schema = @Schema(type = "string")) @QueryParam("before") String before, - @Parameter(description = "Returns list of tasks after this cursor", + @Parameter(description = "Returns list of tasks after this cursor", schema = @Schema(type = "string")) @QueryParam("after") String after - ) throws IOException, GeneralSecurityException { + ) throws IOException, GeneralSecurityException, ParseException { RestUtil.validateCursors(before, after); Fields fields = new Fields(FIELD_LIST, fieldsParam); - TaskList tasks; + ResultList tasks; if (before != null) { // Reverse paging tasks = dao.listBefore(fields, serviceParam, limitParam, before); // Ask for one extra entry } else { // Forward paging or first page 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 dbb45f054e9..b9583fb030c 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 @@ -151,7 +151,7 @@ public class UserResource { if (before != null) { // Reverse paging users = dao.listBefore(fields, limitParam, before); } else { // Forward paging or first page - users = dao.listAfter(fields, limitParam, after); + users = dao.listAfter(fields, null, limitParam, after); } Optional.ofNullable(users.getData()).orElse(Collections.emptyList()).forEach(u -> addHref(uriInfo, u)); return users; 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 1804869c8f7..a0c2f8dde2a 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,28 +711,6 @@ public final class EntityUtil { } } - public static ResultList listAfter(EntityRepository dao, Class clz, Fields fields, String prefixFqn, - int limitParam, String after) - throws IOException, ParseException, GeneralSecurityException { - // forward scrolling, if after == null then first page is being asked - List jsons = dao.listAfter(prefixFqn, limitParam + 1, after == null ? "" : - CipherText.instance().decrypt(after)); - - List entities = new ArrayList<>(); - for (String json : jsons) { - entities.add(dao.setFields(JsonUtils.readValue(json, clz), fields)); - } - int total = dao.listCount(prefixFqn); - - String beforeCursor, afterCursor = null; - beforeCursor = after == null ? null : dao.getFullyQualifiedName(entities.get(0)); - if (entities.size() > limitParam) { // If extra result exists, then next page exists - return after cursor - entities.remove(limitParam); - afterCursor = dao.getFullyQualifiedName(entities.get(limitParam - 1)); - } - return dao.getResultList(entities, beforeCursor, afterCursor, total); - } - public static ResultList listBefore(EntityRepository dao, Class clz, Fields fields, String databaseFQN, int limitParam, String before) throws IOException, ParseException, GeneralSecurityException {