|
@@ -0,0 +1,43 @@
|
|
|
+package com.flow.entity.node.trigger;
|
|
|
+
|
|
|
+import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.flow.common.core.exception.BaseException;
|
|
|
+import com.flow.common.core.util.ApplicationContextUtil;
|
|
|
+import com.flow.flowable.utils.ProcessElementUtil;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.EqualsAndHashCode;
|
|
|
+import org.flowable.bpmn.model.ImplementationType;
|
|
|
+import org.flowable.bpmn.model.ServiceTask;
|
|
|
+
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+@EqualsAndHashCode(callSuper = true)
|
|
|
+@Data
|
|
|
+public class HttpTrigger extends Trigger {
|
|
|
+ private String url;
|
|
|
+ private String method;
|
|
|
+ private Map<String, Object> headers;
|
|
|
+ private Map<String, Object> params;
|
|
|
+ private Map<String, Object> body;
|
|
|
+ private Long requestTimeout = 0L;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void initImpl(ServiceTask serviceTask) {
|
|
|
+ try {
|
|
|
+ serviceTask.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
|
|
|
+ serviceTask.setImplementation("${httpActivityBehavior}");
|
|
|
+ ObjectMapper objectMapper = ApplicationContextUtil.getBean(ObjectMapper.class);
|
|
|
+ ProcessElementUtil.setFieldExtensionExpression(serviceTask, "url", this.url);
|
|
|
+ String headers = objectMapper.writeValueAsString(this.headers);
|
|
|
+ ProcessElementUtil.setFieldExtensionExpression(serviceTask, "headers", headers);
|
|
|
+ String params = objectMapper.writeValueAsString(this.params);
|
|
|
+ ProcessElementUtil.setFieldExtensionExpression(serviceTask, "params", params);
|
|
|
+ String body = objectMapper.writeValueAsString(this.body);
|
|
|
+ ProcessElementUtil.setFieldExtensionExpression(serviceTask, "body", body);
|
|
|
+ ProcessElementUtil.setFieldExtensionExpression(serviceTask, "requestTimeout", String.valueOf(this.requestTimeout));
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
+ throw new BaseException("HttpTrigger params json error");
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|