Commit ebc5b304 authored by Brian Long's avatar Brian Long
Browse files

use @BeanParam for queries

parent 35b3ae62
Loading
Loading
Loading
Loading
+3 −108
Original line number Diff line number Diff line
@@ -15,13 +15,13 @@
package com.inteligr8.activiti.api;

import java.io.File;
import java.time.LocalDate;

import com.inteligr8.activiti.model.Job;
import com.inteligr8.activiti.model.JobsQueryParams;
import com.inteligr8.activiti.model.ProcessInstanceAction;
import com.inteligr8.activiti.model.ResultList;
import com.inteligr8.activiti.model.SortOrder;

import jakarta.ws.rs.BeanParam;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET;
@@ -29,7 +29,6 @@ import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType;

public interface BaseJobsApi {
@@ -61,110 +60,6 @@ public interface BaseJobsApi {
    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<Job> queryJobs(
        @QueryParam("processInstanceId") String processInstanceId,
        @QueryParam("executionId") String executionId,
        @QueryParam("processDefinitionId") String processDefinitionId,
        @QueryParam("withRetriesLeft") Boolean withRetriesLeft,
        @QueryParam("executable") Boolean executable,
        @QueryParam("dueBefore") LocalDate dueBefore,
        @QueryParam("dueAfter") LocalDate dueAfter,
        @QueryParam("withoutTenantId") Boolean withoutTenatId,
        @QueryParam("sort") String sort,
        @QueryParam("order") SortOrder sortOrder,
        @QueryParam("start") Integer pageStart,
        @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<Job> queryJobs(
        @QueryParam("processInstanceId") String processInstanceId,
        @QueryParam("executionId") String executionId,
        @QueryParam("processDefinitionId") String processDefinitionId,
        @QueryParam("withRetriesLeft") Boolean withRetriesLeft,
        @QueryParam("executable") Boolean executable,
        @QueryParam("dueBefore") LocalDate dueBefore,
        @QueryParam("dueAfter") LocalDate dueAfter,
        @QueryParam("tenantId") String tenantId,
        @QueryParam("tenantIdLike") String tenantIdLike,
        @QueryParam("sort") String sort,
        @QueryParam("order") SortOrder sortOrder,
        @QueryParam("start") Integer pageStart,
        @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<Job> queryJobs(
        @QueryParam("processInstanceId") String processInstanceId,
        @QueryParam("executionId") String executionId,
        @QueryParam("processDefinitionId") String processDefinitionId,
        @QueryParam("withRetriesLeft") Boolean withRetriesLeft,
        @QueryParam("executable") Boolean executable,
        @QueryParam("withException") Boolean withException,
        @QueryParam("dueBefore") LocalDate dueBefore,
        @QueryParam("dueAfter") LocalDate dueAfter,
        @QueryParam("exceptionMessage") String exceptionMessage,
        @QueryParam("withoutTenantId") Boolean withoutTenatId,
        @QueryParam("sort") String sort,
        @QueryParam("order") SortOrder sortOrder,
        @QueryParam("start") Integer pageStart,
        @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<Job> queryJobs(
        @QueryParam("processInstanceId") String processInstanceId,
        @QueryParam("executionId") String executionId,
        @QueryParam("processDefinitionId") String processDefinitionId,
        @QueryParam("withRetriesLeft") Boolean withRetriesLeft,
        @QueryParam("executable") Boolean executable,
        @QueryParam("withException") Boolean withException,
        @QueryParam("dueBefore") LocalDate dueBefore,
        @QueryParam("dueAfter") LocalDate dueAfter,
        @QueryParam("exceptionMessage") String exceptionMessage,
        @QueryParam("tenantId") String tenantId,
        @QueryParam("tenantIdLike") String tenantIdLike,
        @QueryParam("sort") String sort,
        @QueryParam("order") SortOrder sortOrder,
        @QueryParam("start") Integer pageStart,
        @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<Job> queryJobs(
        @QueryParam("id") String jobId,
        @QueryParam("processInstanceId") String processInstanceId,
        @QueryParam("executionId") String executionId,
        @QueryParam("processDefinitionId") String processDefinitionId,
        @QueryParam("withRetriesLeft") Boolean withRetriesLeft,
        @QueryParam("executable") Boolean executable,
        @QueryParam("withException") Boolean withException,
        @QueryParam("dueBefore") LocalDate dueBefore,
        @QueryParam("dueAfter") LocalDate dueAfter,
        @QueryParam("exceptionMessage") String exceptionMessage,
        @QueryParam("withoutTenantId") Boolean withoutTenatId,
        @QueryParam("sort") String sort,
        @QueryParam("order") SortOrder sortOrder,
        @QueryParam("start") Integer pageStart,
        @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<Job> queryJobs(
        @QueryParam("id") String jobId,
        @QueryParam("processInstanceId") String processInstanceId,
        @QueryParam("executionId") String executionId,
        @QueryParam("processDefinitionId") String processDefinitionId,
        @QueryParam("withRetriesLeft") Boolean withRetriesLeft,
        @QueryParam("executable") Boolean executable,
        @QueryParam("withException") Boolean withException,
        @QueryParam("dueBefore") LocalDate dueBefore,
        @QueryParam("dueAfter") LocalDate dueAfter,
        @QueryParam("exceptionMessage") String exceptionMessage,
        @QueryParam("tenantId") String tenantId,
        @QueryParam("tenantIdLike") String tenantIdLike,
        @QueryParam("sort") String sort,
        @QueryParam("order") SortOrder sortOrder,
        @QueryParam("start") Integer pageStart,
        @QueryParam("size") Integer pageSize);
        @BeanParam JobsQueryParams jobsConstraint);

}
+5 −58
Original line number Diff line number Diff line
@@ -18,11 +18,13 @@ import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.inteligr8.activiti.model.Execution;
import com.inteligr8.activiti.model.ExecutionsQueryParams;
import com.inteligr8.activiti.model.ProcessInstanceAction;
import com.inteligr8.activiti.model.ResultList;
import com.inteligr8.activiti.model.SortOrder;
import com.inteligr8.activiti.model.Variable;
import com.inteligr8.activiti.model.VariableScope;

import jakarta.ws.rs.BeanParam;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.POST;
@@ -47,13 +49,6 @@ public interface ExecutionApi {
        ProcessDefinitionKey;
    }

    public enum VariableScope {
        @JsonProperty("local")
        Local,
        @JsonProperty("global")
        Global,
    }

    @GET
    @Path("{executionId}")
    @Produces({ MediaType.APPLICATION_JSON })
@@ -76,56 +71,8 @@ public interface ExecutionApi {

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    ResultList<Execution> getByTenant(
            @QueryParam("id") String executionId,
            @QueryParam("activityId") String activityId,
            @QueryParam("processDefinitionKey") String processDefinitionKey,
            @QueryParam("processDefinitionId") String processDefinitionId,
            @QueryParam("processInstanceId") String processInstanceId,
            @QueryParam("messageEventSubscriptionName") String messageEventSubscriptionName,
            @QueryParam("signalEventSubscriptionName") String signalEventSubscriptionName,
            @QueryParam("parentId") String parentId,
            @QueryParam("tenantId") String tenantId,
            @QueryParam("sort") Sort sort,
            @QueryParam("order") SortOrder sortOrder,
            @QueryParam("start") Integer pageStart,
            @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    ResultList<Execution> getByTenants(
            @QueryParam("id") String executionId,
            @QueryParam("activityId") String activityId,
            @QueryParam("processDefinitionKey") String processDefinitionKey,
            @QueryParam("processDefinitionId") String processDefinitionId,
            @QueryParam("processInstanceId") String processInstanceId,
            @QueryParam("messageEventSubscriptionName") String messageEventSubscriptionName,
            @QueryParam("signalEventSubscriptionName") String signalEventSubscriptionName,
            @QueryParam("parentId") String parentId,
            @QueryParam("tenantIdLike") String tenantIdLike,
            @QueryParam("sort") Sort sort,
            @QueryParam("order") SortOrder sortOrder,
            @QueryParam("start") Integer pageStart,
            @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    ResultList<Execution> getByAny(
            @QueryParam("id") String executionId,
            @QueryParam("activityId") String activityId,
            @QueryParam("processDefinitionKey") String processDefinitionKey,
            @QueryParam("processDefinitionId") String processDefinitionId,
            @QueryParam("processInstanceId") String processInstanceId,
            @QueryParam("messageEventSubscriptionName") String messageEventSubscriptionName,
            @QueryParam("signalEventSubscriptionName") String signalEventSubscriptionName,
            @QueryParam("parentId") String parentId,
            @QueryParam("tenantId") String tenantId,
            @QueryParam("tenantIdLike") String tenantIdLike,
            @QueryParam("withoutTenantId") Boolean withoutTenantId,
            @QueryParam("sort") Sort sort,
            @QueryParam("order") SortOrder sortOrder,
            @QueryParam("start") Integer pageStart,
            @QueryParam("size") Integer pageSize);
    ResultList<Execution> query(
            @BeanParam ExecutionsQueryParams params);

    @GET
    @Path("{executionId}/variables")
+4 −24
Original line number Diff line number Diff line
@@ -14,19 +14,18 @@
 */
package com.inteligr8.activiti.api;

import com.inteligr8.activiti.api.ProcessInstanceApi.Sort;
import com.inteligr8.activiti.model.ProcessDefinition;
import com.inteligr8.activiti.model.ProcessDefinitionAction;
import com.inteligr8.activiti.model.ProcessDefinitionsQueryParams;
import com.inteligr8.activiti.model.ResultList;
import com.inteligr8.activiti.model.SortOrder;

import jakarta.ws.rs.BeanParam;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType;

@Path("/api/repository/process-definitions")
@@ -47,26 +46,7 @@ public interface ProcessDefinitionApi {

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<ProcessDefinition> getByAny(
            @QueryParam("category") String category,
            @QueryParam("categoryLike") String categoryLike,
            @QueryParam("categoryNotEquals") String categoryNotEquals,
            @QueryParam("key") String key,
            @QueryParam("keyLike") String keyLike,
            @QueryParam("name") String name,
            @QueryParam("nameLike") String nameLike,
            @QueryParam("resourceName") String resourceName,
            @QueryParam("resourceNameLike") String resourceNameLike,
            @QueryParam("version") String version,
            @QueryParam("suspended") Boolean suspended,
            @QueryParam("latest") Boolean latest,
            @QueryParam("deploymentId") String deploymentId,
            @QueryParam("startableByUser") String startableByUser,
            @QueryParam("tenantId") String tenantId,
            @QueryParam("tenantIdLike") String tenantIdLike,
            @QueryParam("sort") Sort sort,
            @QueryParam("order") SortOrder sortOrder,
            @QueryParam("start") Integer pageStart,
            @QueryParam("size") Integer pageSize);
    public ResultList<ProcessDefinition> query(
            @BeanParam ProcessDefinitionsQueryParams params);

}
+5 −59
Original line number Diff line number Diff line
@@ -18,12 +18,13 @@ import java.io.File;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.inteligr8.activiti.model.ProcessInstance;
import com.inteligr8.activiti.model.ProcessInstanceAction;
import com.inteligr8.activiti.model.ProcessInstancesQueryParams;
import com.inteligr8.activiti.model.ResultList;
import com.inteligr8.activiti.model.SortOrder;
import com.inteligr8.activiti.model.Variable;
import com.inteligr8.alfresco.activiti.model.ProcessInstance;

import jakarta.ws.rs.BeanParam;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.DELETE;
import jakarta.ws.rs.GET;
@@ -32,7 +33,6 @@ import jakarta.ws.rs.PUT;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType;

@Path("/api/runtime/process-instances")
@@ -69,62 +69,8 @@ public interface ProcessInstanceApi {

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<ProcessInstance> getByTenant(
            @QueryParam("id") String processInstanceId,
            @QueryParam("processDefinitionKey") String processDefinitionKey,
            @QueryParam("processDefinitionId") String processDefinitionId,
            @QueryParam("businessKey") String businessKey,
            @QueryParam("involvedUser") String involvedUser,
            @QueryParam("suspended") Boolean suspended,
            @QueryParam("superProcessInstanceId") String superProcessInstanceId,
            @QueryParam("subProcessInstanceId") String subProcessInstanceId,
            @QueryParam("excludeSubprocesses") Boolean excludeSubprocesses,
            @QueryParam("includeProcessVariables") Boolean includeProcessVariables,
            @QueryParam("tenantId") String tenantId,
            @QueryParam("sort") Sort sort,
            @QueryParam("order") SortOrder sortOrder,
            @QueryParam("start") Integer pageStart,
            @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<ProcessInstance> getByTenants(
            @QueryParam("id") String processInstanceId,
            @QueryParam("processDefinitionKey") String processDefinitionKey,
            @QueryParam("processDefinitionId") String processDefinitionId,
            @QueryParam("businessKey") String businessKey,
            @QueryParam("involvedUser") String involvedUser,
            @QueryParam("suspended") Boolean suspended,
            @QueryParam("superProcessInstanceId") String superProcessInstanceId,
            @QueryParam("subProcessInstanceId") String subProcessInstanceId,
            @QueryParam("excludeSubprocesses") Boolean excludeSubprocesses,
            @QueryParam("includeProcessVariables") Boolean includeProcessVariables,
            @QueryParam("tenantIdLike") String tenantIdLike,
            @QueryParam("sort") Sort sort,
            @QueryParam("order") SortOrder sortOrder,
            @QueryParam("start") Integer pageStart,
            @QueryParam("size") Integer pageSize);

    @GET
    @Produces({ MediaType.APPLICATION_JSON })
    public ResultList<ProcessInstance> getByAny(
            @QueryParam("id") String processInstanceId,
            @QueryParam("processDefinitionKey") String processDefinitionKey,
            @QueryParam("processDefinitionId") String processDefinitionId,
            @QueryParam("businessKey") String businessKey,
            @QueryParam("involvedUser") String involvedUser,
            @QueryParam("suspended") Boolean suspended,
            @QueryParam("superProcessInstanceId") String superProcessInstanceId,
            @QueryParam("subProcessInstanceId") String subProcessInstanceId,
            @QueryParam("excludeSubprocesses") Boolean excludeSubprocesses,
            @QueryParam("includeProcessVariables") Boolean includeProcessVariables,
            @QueryParam("tenantId") String tenantId,
            @QueryParam("tenantIdLike") String tenantIdLike,
            @QueryParam("withoutTenantId") Boolean withoutTenantId,
            @QueryParam("sort") Sort sort,
            @QueryParam("order") SortOrder sortOrder,
            @QueryParam("start") Integer pageStart,
            @QueryParam("size") Integer pageSize);
    public ResultList<ProcessInstance> query(
            @BeanParam ProcessInstancesQueryParams params);

    @GET
    @Path("{processInstanceId}/diagram")
+27 −0
Original line number Diff line number Diff line
package com.inteligr8.activiti.jackson;

import java.io.IOException;
import java.util.Collection;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

public class CollectionJsonSerializer extends JsonSerializer<Collection<?>> {
    
    @Override
    public void serialize(Collection<?> values, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        if (values == null) {
            gen.writeNull();
        } else if (values.isEmpty()) {
            gen.writeString("");
        } else {
            StringBuilder str = new StringBuilder();
            for (Object value : values)
                str.append(value).append(',');
            str.deleteCharAt(str.length()-1);
            gen.writeString(str.toString());
        }
    }

}
Loading