Skip to content

Commit f74c4b6

Browse files
committed
1 parent 9b3dfa7 commit f74c4b6

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

polycode/client.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,11 @@ type SignalEmitRequest struct {
206206
Error Error `json:"error"`
207207
}
208208

209+
type RealtimeEventEmitRequest struct {
210+
Channel string `json:"channel"`
211+
Input any `json:"input"`
212+
}
213+
209214
type SignalWaitRequest struct {
210215
SignalName string `json:"signalName"`
211216
}
@@ -409,6 +414,10 @@ func (sc *ServiceClient) WaitForSignal(sessionId string, req SignalWaitRequest)
409414
return res, err
410415
}
411416

417+
func (sc *ServiceClient) EmitRealtimeEvent(sessionId string, req RealtimeEventEmitRequest) error {
418+
return executeApiWithoutResponse(sc.httpClient, sc.baseURL, sessionId, "v1/realtime/event/emit", req)
419+
}
420+
412421
func (sc *ServiceClient) IncrementCounter(sessionId string, req IncrementCounterRequest) (IncrementCounterResponse, error) {
413422
var res IncrementCounterResponse
414423
err := executeApiWithResponse(sc.httpClient, sc.baseURL, sessionId, "v1/utils/counter/increment", req, &res)

polycode/context.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ type WorkflowContext interface {
3333
SignalAwait(signalName string) Response
3434
SignalResumeSuccess(taskId string, signalName string, data any) error
3535
SignalResumeError(taskId string, signalName string, err Error) error
36+
EmitRealtimeEvent(channel string, data any) error
3637
}
3738

3839
type ApiContext interface {
@@ -183,6 +184,15 @@ func (s ContextImpl) SignalResumeError(taskId string, signalName string, err Err
183184
return s.serviceClient.EmitSignal(s.sessionId, req)
184185
}
185186

187+
func (s ContextImpl) EmitRealtimeEvent(channel string, data any) error {
188+
req := RealtimeEventEmitRequest{
189+
Channel: channel,
190+
Input: data,
191+
}
192+
193+
return s.serviceClient.EmitRealtimeEvent(s.sessionId, req)
194+
}
195+
186196
func (s ContextImpl) Counter(group string, name string, ttl int64) Counter {
187197
return Counter{
188198
client: s.serviceClient,

0 commit comments

Comments
 (0)