|
23 | 23 | import io.serverlessworkflow.api.types.TaskBase; |
24 | 24 | import io.serverlessworkflow.impl.WorkflowDefinition; |
25 | 25 | import io.serverlessworkflow.impl.WorkflowMutablePosition; |
| 26 | +import io.serverlessworkflow.impl.WorkflowUtils; |
| 27 | +import io.serverlessworkflow.impl.WorkflowValueResolver; |
| 28 | +import io.serverlessworkflow.impl.executors.CallableTask; |
26 | 29 | import io.serverlessworkflow.impl.executors.CallableTaskBuilder; |
27 | | -import java.util.Optional; |
| 30 | +import java.net.URI; |
28 | 31 |
|
29 | | -public class CallableTaskHttpExecutorBuilder extends AbstractHttpExecutorBuilder |
30 | | - implements CallableTaskBuilder<CallHTTP> { |
| 32 | +public class CallableTaskHttpExecutorBuilder implements CallableTaskBuilder<CallHTTP> { |
| 33 | + |
| 34 | + private HttpExecutorBuilder builder; |
| 35 | + private WorkflowValueResolver<URI> uriSupplier; |
31 | 36 |
|
32 | 37 | @Override |
33 | 38 | public void init(CallHTTP task, WorkflowDefinition definition, WorkflowMutablePosition position) { |
| 39 | + |
| 40 | + builder = HttpExecutorBuilder.builder(definition); |
34 | 41 | final HTTPArguments httpArgs = task.getWith(); |
35 | 42 | final Endpoint endpoint = httpArgs.getEndpoint(); |
36 | 43 |
|
37 | | - this.authProvider = |
38 | | - endpoint.getEndpointConfiguration() == null |
39 | | - ? Optional.empty() |
40 | | - : AuthProviderFactory.getAuth( |
41 | | - definition, endpoint.getEndpointConfiguration().getAuthentication()); |
| 44 | + if (endpoint.getEndpointConfiguration() != null) { |
| 45 | + builder.withAuth(endpoint.getEndpointConfiguration().getAuthentication()); |
| 46 | + } |
42 | 47 |
|
43 | | - this.targetSupplier = getTargetSupplier(definition.resourceLoader().uriSupplier(endpoint)); |
| 48 | + uriSupplier = definition.resourceLoader().uriSupplier(endpoint); |
44 | 49 |
|
45 | 50 | if (httpArgs.getHeaders() != null) { |
46 | | - this.headersMap = |
| 51 | + builder.withHeaders( |
47 | 52 | buildMapResolver( |
48 | 53 | definition.application(), |
49 | 54 | httpArgs.getHeaders().getRuntimeExpression(), |
50 | 55 | httpArgs.getHeaders().getHTTPHeaders() != null |
51 | 56 | ? httpArgs.getHeaders().getHTTPHeaders().getAdditionalProperties() |
52 | | - : null); |
| 57 | + : null)); |
53 | 58 | } |
54 | 59 |
|
55 | 60 | if (httpArgs.getQuery() != null) { |
56 | | - queryMap = |
| 61 | + builder.withQueryMap( |
57 | 62 | buildMapResolver( |
58 | 63 | definition.application(), |
59 | 64 | httpArgs.getQuery().getRuntimeExpression(), |
60 | 65 | httpArgs.getQuery().getHTTPQuery() != null |
61 | 66 | ? httpArgs.getQuery().getHTTPQuery().getAdditionalProperties() |
62 | | - : null); |
| 67 | + : null)); |
63 | 68 | } |
64 | | - this.requestFunction = |
65 | | - buildRequestSupplier( |
66 | | - httpArgs.getMethod().toUpperCase(), |
67 | | - httpArgs.getBody(), |
68 | | - httpArgs.isRedirect(), |
69 | | - definition.application()); |
| 69 | + |
| 70 | + builder.withBody(httpArgs.getBody()); |
| 71 | + builder.withMethod(httpArgs.getMethod().toUpperCase()); |
| 72 | + builder.redirect(httpArgs.isRedirect()); |
| 73 | + builder.timeout( |
| 74 | + WorkflowUtils.getTaskTimeout(definition.application(), definition.workflow(), task)); |
70 | 75 | } |
71 | 76 |
|
72 | 77 | @Override |
73 | 78 | public boolean accept(Class<? extends TaskBase> clazz) { |
74 | 79 | return clazz.equals(CallHTTP.class); |
75 | 80 | } |
| 81 | + |
| 82 | + @Override |
| 83 | + public CallableTask build() { |
| 84 | + return builder.build(uriSupplier); |
| 85 | + } |
76 | 86 | } |
0 commit comments