Skip to content

Commit 8baad35

Browse files
Support Submit with delay in workflow generated clients (#526)
1 parent 8eb3fdc commit 8baad35

File tree

2 files changed

+30
-2
lines changed
  • sdk-api-gen/src/main/resources/templates
  • sdk-api-kotlin-gen/src/main/resources/templates

2 files changed

+30
-2
lines changed

sdk-api-gen/src/main/resources/templates/Client.hbs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,12 @@ public class {{generatedClassSimpleName}} {
112112
);
113113
}
114114

115+
public dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}> submit({{^inputEmpty}}{{{inputFqcn}}} req, {{/inputEmpty}}Duration delay) {
116+
return IngressClient.this.client.send(
117+
{{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key{{^inputEmpty}}, {{/inputEmpty}}{{/if}}{{^inputEmpty}}req{{/inputEmpty}}), delay
118+
);
119+
}
120+
115121
public dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}> submit({{^inputEmpty}}{{{inputFqcn}}} req, {{/inputEmpty}}Consumer<dev.restate.common.RequestBuilder<{{{boxedInputFqcn}}}, {{{boxedOutputFqcn}}}>> requestBuilderApplier) {
116122
var reqBuilder = {{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key{{^inputEmpty}}, {{/inputEmpty}}{{/if}}{{^inputEmpty}}req{{/inputEmpty}});
117123
if (requestBuilderApplier != null) {
@@ -120,19 +126,41 @@ public class {{generatedClassSimpleName}} {
120126
return IngressClient.this.client.send(reqBuilder);
121127
}
122128

129+
public dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}> submit({{^inputEmpty}}{{{inputFqcn}}} req, {{/inputEmpty}}Duration delay, Consumer<dev.restate.common.RequestBuilder<{{{boxedInputFqcn}}}, {{{boxedOutputFqcn}}}>> requestBuilderApplier) {
130+
var reqBuilder = {{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key{{^inputEmpty}}, {{/inputEmpty}}{{/if}}{{^inputEmpty}}req{{/inputEmpty}});
131+
if (requestBuilderApplier != null) {
132+
requestBuilderApplier.accept(reqBuilder);
133+
}
134+
return IngressClient.this.client.send(reqBuilder, delay);
135+
}
136+
123137
public java.util.concurrent.CompletableFuture<dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}>> submitAsync({{^inputEmpty}}{{{inputFqcn}}} req{{/inputEmpty}}) {
124138
return IngressClient.this.client.sendAsync(
125139
{{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key{{^inputEmpty}}, {{/inputEmpty}}{{/if}}{{^inputEmpty}}req{{/inputEmpty}})
126140
);
127141
}
128142

143+
public java.util.concurrent.CompletableFuture<dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}>> submitAsync({{^inputEmpty}}{{{inputFqcn}}} req, {{/inputEmpty}} Duration delay) {
144+
return IngressClient.this.client.sendAsync(
145+
{{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key{{^inputEmpty}}, {{/inputEmpty}}{{/if}}{{^inputEmpty}}req{{/inputEmpty}}), delay
146+
);
147+
}
148+
129149
public java.util.concurrent.CompletableFuture<dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}>> submitAsync({{^inputEmpty}}{{{inputFqcn}}} req, {{/inputEmpty}}Consumer<dev.restate.common.RequestBuilder<{{{boxedInputFqcn}}}, {{{boxedOutputFqcn}}}>> requestBuilderApplier) {
130150
var reqBuilder = {{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key{{^inputEmpty}}, {{/inputEmpty}}{{/if}}{{^inputEmpty}}req{{/inputEmpty}});
131151
if (requestBuilderApplier != null) {
132152
requestBuilderApplier.accept(reqBuilder);
133153
}
134154
return IngressClient.this.client.sendAsync(reqBuilder);
135155
}
156+
157+
public java.util.concurrent.CompletableFuture<dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}>> submitAsync({{^inputEmpty}}{{{inputFqcn}}} req, {{/inputEmpty}}Duration delay, Consumer<dev.restate.common.RequestBuilder<{{{boxedInputFqcn}}}, {{{boxedOutputFqcn}}}>> requestBuilderApplier) {
158+
var reqBuilder = {{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key{{^inputEmpty}}, {{/inputEmpty}}{{/if}}{{^inputEmpty}}req{{/inputEmpty}});
159+
if (requestBuilderApplier != null) {
160+
requestBuilderApplier.accept(reqBuilder);
161+
}
162+
return IngressClient.this.client.sendAsync(reqBuilder, delay);
163+
}
136164
{{else}}
137165
public {{#if outputEmpty}}void{{else}}{{{outputFqcn}}}{{/if}} {{handlersClassMethodName}}({{^inputEmpty}}{{{inputFqcn}}} req{{/inputEmpty}}) {
138166
{{^outputEmpty}}return {{/outputEmpty}}this.client.call(

sdk-api-kotlin-gen/src/main/resources/templates/Client.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ object {{generatedClassSimpleName}} {
5454
{{outputSerdeRef}});
5555
}
5656

57-
suspend fun submit({{^inputEmpty}}req: {{{inputFqcn}}}, {{/inputEmpty}}init: dev.restate.common.RequestBuilder<{{{boxedInputFqcn}}}, {{{boxedOutputFqcn}}}>.() -> Unit = {}): dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}> {
57+
suspend fun submit({{^inputEmpty}}req: {{{inputFqcn}}}, {{/inputEmpty}}delay: Duration? = null, init: dev.restate.common.RequestBuilder<{{{boxedInputFqcn}}}, {{{boxedOutputFqcn}}}>.() -> Unit = {}): dev.restate.client.SendResponse<{{{boxedOutputFqcn}}}> {
5858
59-
{{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key, {{/if}}{{^inputEmpty}}req, {{/inputEmpty}}init)
59+
{{../handlersClass}}.{{handlersClassMethodName}}({{#if ../isKeyed}}this.key, {{/if}}{{^inputEmpty}}req, {{/inputEmpty}}init), delay
6060
)
6161
}
6262
{{else}}

0 commit comments

Comments
 (0)