/* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.activiti.rest.service.api.history; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.activiti.rest.common.api.DataResponse; import org.activiti.rest.common.api.RequestUtil; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * @author Tijs Rademakers */ @RestController public class HistoricTaskInstanceCollectionResource extends HistoricTaskInstanceBaseResource { @RequestMapping(value="/history/historic-task-instances", method = RequestMethod.GET, produces = "application/json") public DataResponse getHistoricProcessInstances(@RequestParam Map<String,String> allRequestParams, HttpServletRequest request) { // Populate query based on request HistoricTaskInstanceQueryRequest queryRequest = new HistoricTaskInstanceQueryRequest(); if (allRequestParams.get("taskId") != null) { queryRequest.setTaskId(allRequestParams.get("taskId")); } if (allRequestParams.get("processInstanceId") != null) { queryRequest.setProcessInstanceId(allRequestParams.get("processInstanceId")); } if (allRequestParams.get("processBusinessKey") != null) { queryRequest.setProcessBusinessKey(allRequestParams.get("processBusinessKey")); } if (allRequestParams.get("processBusinessKeyLike") != null) { queryRequest.setProcessBusinessKeyLike(allRequestParams.get("processBusinessKeyLike")); } if (allRequestParams.get("processDefinitionKey") != null) { queryRequest.setProcessDefinitionKey(allRequestParams.get("processDefinitionKey")); } if (allRequestParams.get("processDefinitionKeyLike") != null) { queryRequest.setProcessDefinitionKeyLike(allRequestParams.get("processDefinitionKeyLike")); } if (allRequestParams.get("processDefinitionId") != null) { queryRequest.setProcessDefinitionId(allRequestParams.get("processDefinitionId")); } if (allRequestParams.get("processDefinitionName") != null) { queryRequest.setProcessDefinitionName(allRequestParams.get("processDefinitionName")); } if (allRequestParams.get("processDefinitionNameLike") != null) { queryRequest.setProcessDefinitionNameLike(allRequestParams.get("processDefinitionNameLike")); } if (allRequestParams.get("executionId") != null) { queryRequest.setExecutionId(allRequestParams.get("executionId")); } if (allRequestParams.get("taskName") != null) { queryRequest.setTaskName(allRequestParams.get("taskName")); } if (allRequestParams.get("taskNameLike") != null) { queryRequest.setTaskNameLike(allRequestParams.get("taskNameLike")); } if (allRequestParams.get("taskDescription") != null) { queryRequest.setTaskDescription(allRequestParams.get("taskDescription")); } if (allRequestParams.get("taskDescriptionLike") != null) { queryRequest.setTaskDescriptionLike(allRequestParams.get("taskDescriptionLike")); } if (allRequestParams.get("taskDefinitionKey") != null) { queryRequest.setTaskDefinitionKey(allRequestParams.get("taskDefinitionKey")); } if (allRequestParams.containsKey("taskCategory")) { queryRequest.setTaskCategory(allRequestParams.get("taskCategory")); } if (allRequestParams.get("taskDeleteReason") != null) { queryRequest.setTaskDeleteReason(allRequestParams.get("taskDeleteReason")); } if (allRequestParams.get("taskDeleteReasonLike") != null) { queryRequest.setTaskDeleteReasonLike(allRequestParams.get("taskDeleteReasonLike")); } if (allRequestParams.get("taskAssignee") != null) { queryRequest.setTaskAssignee(allRequestParams.get("taskAssignee")); } if (allRequestParams.get("taskAssigneeLike") != null) { queryRequest.setTaskAssigneeLike(allRequestParams.get("taskAssigneeLike")); } if (allRequestParams.get("taskOwner") != null) { queryRequest.setTaskOwner(allRequestParams.get("taskOwner")); } if (allRequestParams.get("taskOwnerLike") != null) { queryRequest.setTaskOwnerLike(allRequestParams.get("taskOwnerLike")); } if (allRequestParams.get("taskInvolvedUser") != null) { queryRequest.setTaskInvolvedUser(allRequestParams.get("taskInvolvedUser")); } if (allRequestParams.get("taskPriority") != null) { queryRequest.setTaskPriority(Integer.valueOf(allRequestParams.get("taskPriority"))); } if (allRequestParams.get("taskMinPriority") != null) { queryRequest.setTaskMinPriority(Integer.valueOf(allRequestParams.get("taskMinPriority"))); } if (allRequestParams.get("taskMaxPriority") != null) { queryRequest.setTaskMaxPriority(Integer.valueOf(allRequestParams.get("taskMaxPriority"))); } if (allRequestParams.get("finished") != null) { queryRequest.setFinished(Boolean.valueOf(allRequestParams.get("finished"))); } if (allRequestParams.get("processFinished") != null) { queryRequest.setProcessFinished(Boolean.valueOf(allRequestParams.get("processFinished"))); } if (allRequestParams.get("parentTaskId") != null) { queryRequest.setParentTaskId(allRequestParams.get("parentTaskId")); } if (allRequestParams.get("dueDate") != null) { queryRequest.setDueDate(RequestUtil.getDate(allRequestParams, "dueDate")); } if (allRequestParams.get("dueDateAfter") != null) { queryRequest.setDueDateAfter(RequestUtil.getDate(allRequestParams, "dueDateAfter")); } if (allRequestParams.get("dueDateBefore") != null) { queryRequest.setDueDateBefore(RequestUtil.getDate(allRequestParams, "dueDateBefore")); } if (allRequestParams.get("taskCreatedOn") != null) { queryRequest.setTaskCreatedOn(RequestUtil.getDate(allRequestParams, "taskCreatedOn")); } if (allRequestParams.get("taskCreatedBefore") != null) { queryRequest.setTaskCreatedBefore(RequestUtil.getDate(allRequestParams, "taskCreatedBefore")); } if (allRequestParams.get("taskCreatedAfter") != null) { queryRequest.setTaskCreatedAfter(RequestUtil.getDate(allRequestParams, "taskCreatedAfter")); } if (allRequestParams.get("taskCompletedOn") != null) { queryRequest.setTaskCompletedOn(RequestUtil.getDate(allRequestParams, "taskCompletedOn")); } if (allRequestParams.get("taskCompletedBefore") != null) { queryRequest.setTaskCompletedBefore(RequestUtil.getDate(allRequestParams, "taskCompletedBefore")); } if (allRequestParams.get("taskCompletedAfter") != null) { queryRequest.setTaskCompletedAfter(RequestUtil.getDate(allRequestParams, "taskCompletedAfter")); } if (allRequestParams.get("includeTaskLocalVariables") != null) { queryRequest.setIncludeTaskLocalVariables(Boolean.valueOf(allRequestParams.get("includeTaskLocalVariables"))); } if (allRequestParams.get("includeProcessVariables") != null) { queryRequest.setIncludeProcessVariables(Boolean.valueOf(allRequestParams.get("includeProcessVariables"))); } if (allRequestParams.get("tenantId") != null) { queryRequest.setTenantId(allRequestParams.get("tenantId")); } if (allRequestParams.get("tenantIdLike") != null) { queryRequest.setTenantIdLike(allRequestParams.get("tenantIdLike")); } if (allRequestParams.get("withoutTenantId") != null) { queryRequest.setWithoutTenantId(Boolean.valueOf(allRequestParams.get("withoutTenantId"))); } if (allRequestParams.get("taskCandidateGroup") != null) { queryRequest.setTaskCandidateGroup(allRequestParams.get("taskCandidateGroup")); } return getQueryResponse(queryRequest, allRequestParams, request.getRequestURL().toString().replace("/history/historic-task-instances", "")); } }