From 51801113af10ef505630e2e96f7bfc3a4de42983 Mon Sep 17 00:00:00 2001 From: Albert Chae Date: Sun, 8 Sep 2024 22:52:44 -0700 Subject: [PATCH] Fixed and rebased - moved Array -> List conversion out of scope of this PR, we can do that in a follow up --- .../java/com/inngest/springbootdemo/FollowupFunction.java | 4 ++-- inngest/src/main/kotlin/com/inngest/Comm.kt | 4 ++-- inngest/src/main/kotlin/com/inngest/Event.kt | 8 ++++---- inngest/src/main/kotlin/com/inngest/Function.kt | 4 ++-- inngest/src/main/kotlin/com/inngest/Inngest.kt | 6 +++--- inngest/src/main/kotlin/com/inngest/Step.kt | 7 +++---- 6 files changed, 16 insertions(+), 17 deletions(-) diff --git a/inngest-spring-boot-demo/src/main/java/com/inngest/springbootdemo/FollowupFunction.java b/inngest-spring-boot-demo/src/main/java/com/inngest/springbootdemo/FollowupFunction.java index df3f0823..3029c1d5 100644 --- a/inngest-spring-boot-demo/src/main/java/com/inngest/springbootdemo/FollowupFunction.java +++ b/inngest-spring-boot-demo/src/main/java/com/inngest/springbootdemo/FollowupFunction.java @@ -3,7 +3,7 @@ import com.inngest.*; import org.jetbrains.annotations.NotNull; -import java.util.LinkedHashMap; +import java.util.Map; public class FollowupFunction extends InngestFunction { @@ -18,7 +18,7 @@ public InngestFunctionConfigBuilder config(InngestFunctionConfigBuilder builder) } @Override - public LinkedHashMap execute(@NotNull FunctionContext ctx, @NotNull Step step) { + public Map execute(@NotNull FunctionContext ctx, @NotNull Step step) { System.out.println("-> follow up handler called " + ctx.getEvent().getName()); return ctx.getEvent().getData(); } diff --git a/inngest/src/main/kotlin/com/inngest/Comm.kt b/inngest/src/main/kotlin/com/inngest/Comm.kt index e27e3cc2..54ecdf9a 100644 --- a/inngest/src/main/kotlin/com/inngest/Comm.kt +++ b/inngest/src/main/kotlin/com/inngest/Comm.kt @@ -9,8 +9,8 @@ import java.io.IOException data class ExecutionRequestPayload( val ctx: ExecutionContext, - val event: Event, - val events: List, + val event: InngestEvent, + val events: List, val steps: MemoizedState, ) diff --git a/inngest/src/main/kotlin/com/inngest/Event.kt b/inngest/src/main/kotlin/com/inngest/Event.kt index 8368836a..b2f61b35 100644 --- a/inngest/src/main/kotlin/com/inngest/Event.kt +++ b/inngest/src/main/kotlin/com/inngest/Event.kt @@ -21,7 +21,7 @@ data class InngestEvent @JvmOverloads constructor( val name: String, - val data: Any, + val data: Map, @Json(serializeNull = false) val user: Any? = null, @Json(serializeNull = false) @@ -38,7 +38,7 @@ data class InngestEvent class InngestEventBuilder( var id: String?, var name: String?, - var data: Any?, + var data: Map?, private var user: Any?, private var ts: Long?, private var v: String? = null, @@ -53,7 +53,7 @@ class InngestEventBuilder( return this } - fun data(data: Any): InngestEventBuilder { + fun data(data: Map): InngestEventBuilder { this.data = data return this } @@ -91,6 +91,6 @@ class InngestEventBuilder( * in the order of which they were included in the request */ data class SendEventsResponse( - val ids: List, + val ids: Array, val status: Int, ) diff --git a/inngest/src/main/kotlin/com/inngest/Function.kt b/inngest/src/main/kotlin/com/inngest/Function.kt index f1a83171..366a136e 100644 --- a/inngest/src/main/kotlin/com/inngest/Function.kt +++ b/inngest/src/main/kotlin/com/inngest/Function.kt @@ -100,8 +100,8 @@ internal class InternalFunctionConfig * Includes event(s) and other run information */ data class FunctionContext( - val event: Event, - val events: List, + val event: InngestEvent, + val events: List, val runId: String, val fnId: String, val attempt: Int, diff --git a/inngest/src/main/kotlin/com/inngest/Inngest.kt b/inngest/src/main/kotlin/com/inngest/Inngest.kt index f5f9da63..249a12e4 100644 --- a/inngest/src/main/kotlin/com/inngest/Inngest.kt +++ b/inngest/src/main/kotlin/com/inngest/Inngest.kt @@ -1,8 +1,6 @@ package com.inngest import com.beust.klaxon.Klaxon -import java.io.IOException -import io.ktor.http.* import java.net.ConnectException class Inngest @@ -47,13 +45,15 @@ class Inngest val responseBody = response.body!!.charStream() try { - val sendEventsResponse = Klaxon().parse(responseBody) + val sendEventsResponse = Klaxon().parse(responseBody) if (sendEventsResponse != null) { return@lambda sendEventsResponse } } catch (e: Exception) { throw InngestSendEventInvalidResponseException(responseBody.toString()) } + // If we haven't successfully parsed and returned a valid SendEventsResponse + // by this point, throw an exception throw InngestSendEventInvalidResponseException(responseBody.toString()) } } catch (e: ConnectException) { diff --git a/inngest/src/main/kotlin/com/inngest/Step.kt b/inngest/src/main/kotlin/com/inngest/Step.kt index bee9d7ec..97030d44 100644 --- a/inngest/src/main/kotlin/com/inngest/Step.kt +++ b/inngest/src/main/kotlin/com/inngest/Step.kt @@ -31,7 +31,7 @@ class StepInterruptSleepException( class StepInterruptSendEventException( id: String, hashedId: String, - val eventIds: List, + val eventIds: Array, ) : StepInterruptException(id, hashedId, eventIds) class StepInterruptInvokeException( @@ -211,7 +211,7 @@ class Step( val hashedId = state.getHashFromId(id) try { - val stepState = state.getState>(hashedId, "event_ids") + val stepState = state.getState>(hashedId, "event_ids") if (stepState != null) { return SendEventsResponse(stepState, 200) @@ -219,8 +219,7 @@ class Step( throw Exception("step state expected sendEvent, got something else") } catch (e: StateNotFound) { val response = client.send(events) - //throw StepInterruptSendEventException(id, hashedId, response!!.ids) - throw StepInterruptSendEventException(id, hashedId, response.ids) + throw StepInterruptSendEventException(id, hashedId, response!!.ids) } }