@@ -2,14 +2,18 @@ package polycode
22
33import (
44 "context"
5- "fmt"
65 "time"
76)
87
8+ type AuthContext struct {
9+ claims map [string ]interface {}
10+ }
11+
912type BaseContext interface {
1013 context.Context
1114 Meta () ContextMeta
1215 AppConfig () AppConfig
16+ AuthContext () AuthContext
1317 Logger () Logger
1418}
1519
@@ -30,10 +34,8 @@ type WorkflowContext interface {
3034 ControllerEx (envId string , controller string ) RemoteController
3135 UnsafeDb () * UnsafeDataStoreBuilder
3236 Memo (getter func () (any , error )) Response
33- SignalAwait (signalName string ) Response
34- SignalResumeSuccess (taskId string , signalName string , data any ) error
35- SignalResumeError (taskId string , signalName string , err Error ) error
36- EmitRealtimeEvent (channel string , data any ) error
37+ Signal (signalName string ) Signal
38+ RealtimeChannel (channelName string ) RealtimeChannel
3739}
3840
3941type ApiContext interface {
@@ -54,12 +56,17 @@ type ContextImpl struct {
5456 serviceClient * ServiceClient
5557 logger Logger
5658 meta ContextMeta
59+ authCtx AuthContext
5760}
5861
5962func (s ContextImpl ) Meta () ContextMeta {
6063 return s .meta
6164}
6265
66+ func (s ContextImpl ) AuthContext () AuthContext {
67+ return s .authCtx
68+ }
69+
6370func (s ContextImpl ) AppConfig () AppConfig {
6471 return s .config
6572}
@@ -135,62 +142,20 @@ func (s ContextImpl) Logger() Logger {
135142 return s .logger
136143}
137144
138- func (s ContextImpl ) Acknowledge () error {
139- return s .serviceClient .Acknowledge (s .sessionId )
140- }
141-
142- func (s ContextImpl ) SignalAwait (signalName string ) Response {
143- req := SignalWaitRequest {
144- SignalName : signalName ,
145- }
146-
147- output , err := s .serviceClient .WaitForSignal (s .sessionId , req )
148- if err != nil {
149- fmt .Printf ("client: signal await error: %v\n " , err )
150- return Response {
151- output : nil ,
152- isError : true ,
153- error : ErrTaskExecError .Wrap (err ),
154- }
155- }
156-
157- fmt .Printf ("client: signal await output: %v\n " , output )
158- return Response {
159- output : output .Output ,
160- isError : output .IsError ,
161- error : output .Error ,
145+ func (s ContextImpl ) Signal (signalName string ) Signal {
146+ return Signal {
147+ name : signalName ,
148+ sessionId : s .sessionId ,
149+ serviceClient : s .serviceClient ,
162150 }
163151}
164152
165- func (s ContextImpl ) SignalResumeSuccess (taskId string , signalName string , data any ) error {
166- req := SignalEmitRequest {
167- TaskId : taskId ,
168- SignalName : signalName ,
169- Output : data ,
170- IsError : false ,
153+ func (s ContextImpl ) RealtimeChannel (channelName string ) RealtimeChannel {
154+ return RealtimeChannel {
155+ name : channelName ,
156+ sessionId : s .sessionId ,
157+ serviceClient : s .serviceClient ,
171158 }
172-
173- return s .serviceClient .EmitSignal (s .sessionId , req )
174- }
175-
176- func (s ContextImpl ) SignalResumeError (taskId string , signalName string , err Error ) error {
177- req := SignalEmitRequest {
178- TaskId : taskId ,
179- SignalName : signalName ,
180- IsError : true ,
181- Error : err ,
182- }
183-
184- return s .serviceClient .EmitSignal (s .sessionId , req )
185- }
186-
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 )
194159}
195160
196161func (s ContextImpl ) Counter (group string , name string , ttl int64 ) Counter {
0 commit comments