@@ -129,57 +129,55 @@ func loadRoutes() []RouteData {
129129 return routes
130130}
131131
132- func runTask (ctx context.Context , event TaskStartEvent ) (evt TaskCompleteEvent ) {
132+ func runService (ctx context.Context , event ServiceStartEvent ) (evt ServiceCompleteEvent , err error ) {
133133 log .Println ("client: handle task start event" )
134134 defer func () {
135135 // Recover from panic and check for a specific error
136136 if r := recover (); r != nil {
137- err , ok := r .(error )
137+ recovered , ok := r .(error )
138138
139- if ok && errors .Is (err , ErrTaskInProgress ) {
139+ if ok && errors .Is (recovered , ErrTaskInProgress ) {
140140 log .Println ("client: task in progress" )
141- evt = ValueToTaskComplete (nil )
141+ evt = ValueToServiceComplete (nil )
142142 } else {
143- log .Printf ("client: task completed with error %s\n " , err .Error ())
143+ log .Printf ("client: task error %s\n " , recovered .Error ())
144144 stackTrace := string (debug .Stack ())
145145 println (stackTrace )
146- evt = ErrorToTaskComplete ( err )
146+ err = recovered
147147 }
148148 }
149149 }()
150150
151- service , err := getService (event .ServiceName )
151+ service , err := getService (event .Service )
152152 if err != nil {
153- fmt .Printf ("client: task completed with error %s\n " , err .Error ())
154- return ErrorToTaskComplete ( err )
153+ fmt .Printf ("client: task error %s\n " , err .Error ())
154+ return ServiceCompleteEvent {}, err
155155 }
156156
157- inputObj , err := service .GetInputType (event .EntryPoint )
157+ inputObj , err := service .GetInputType (event .Method )
158158 if err != nil {
159- fmt .Printf ("client: task completed with error %s\n " , err .Error ())
160- return ErrorToTaskComplete ( err )
159+ fmt .Printf ("client: task error %s\n " , err .Error ())
160+ return ServiceCompleteEvent {}, err
161161 }
162162
163- err = ConvertType (event .Input . Input , inputObj )
163+ err = ConvertType (event .Input , inputObj )
164164 if err != nil {
165- fmt .Printf ("client: task completed with error %s\n " , err .Error ())
166- return ErrorToTaskComplete ( err )
165+ fmt .Printf ("client: task error %s\n " , err .Error ())
166+ return ServiceCompleteEvent {}, err
167167 }
168168
169- isWorkflow := service .IsWorkflow (event .EntryPoint )
170-
171169 var ret any
172- if isWorkflow {
170+ if service . IsWorkflow ( event . Method ) {
173171 workflowCtx := WorkflowContext {
174172 ctx : ctx ,
175173 sessionId : event .SessionId ,
176174 serviceClient : serviceClient ,
177175 config : appConfig ,
178176 }
179177
180- println (fmt .Sprintf ("client: service %s exec workflow %s with session id %s" , event .ServiceName ,
181- event .EntryPoint , event .SessionId ))
182- ret , err = service .ExecuteWorkflow (workflowCtx , event .EntryPoint , inputObj )
178+ println (fmt .Sprintf ("client: service %s exec workflow %s with session id %s" , event .Service ,
179+ event .Method , event .SessionId ))
180+ ret , err = service .ExecuteWorkflow (workflowCtx , event .Method , inputObj )
183181 } else {
184182 srvCtx := ServiceContext {
185183 ctx : ctx ,
@@ -188,42 +186,49 @@ func runTask(ctx context.Context, event TaskStartEvent) (evt TaskCompleteEvent)
188186 config : appConfig ,
189187 }
190188
191- println (fmt .Sprintf ("client: service %s exec handler %s with session id %s" , event .ServiceName ,
192- event .EntryPoint , event .SessionId ))
193- ret , err = service .ExecuteService (srvCtx , event .EntryPoint , inputObj )
189+ println (fmt .Sprintf ("client: service %s exec handler %s with session id %s" , event .Service ,
190+ event .Method , event .SessionId ))
191+ ret , err = service .ExecuteService (srvCtx , event .Method , inputObj )
194192 }
195193
196194 if err != nil {
197195 fmt .Printf ("client: task completed with error %s\n " , err .Error ())
198- return ErrorToTaskComplete (err )
196+ return ErrorToServiceComplete (err ), nil
199197 }
200198
201199 println ("client: task completed" )
202- return ValueToTaskComplete (ret )
200+ return ValueToServiceComplete (ret ), nil
203201}
204202
205- func runApi (ctx context.Context , event ApiStartEvent ) (evt TaskCompleteEvent ) {
203+ func runApi (ctx context.Context , event ApiStartEvent ) (evt ApiCompleteEvent , err error ) {
206204 log .Println ("client: handle http request" )
207205 defer func () {
208206 // Recover from panic and check for a specific error
209207 if r := recover (); r != nil {
210- err , ok := r .(error )
208+ recovered , ok := r .(error )
211209
212- if ok && errors .Is (err , ErrTaskInProgress ) {
210+ if ok && errors .Is (recovered , ErrTaskInProgress ) {
213211 log .Println ("client: api in progress" )
214- evt = ValueToTaskComplete (nil )
212+ evt = ApiCompleteEvent {
213+ Response : ApiResponse {
214+ StatusCode : 200 ,
215+ Header : make (map [string ]string ),
216+ Body : "" ,
217+ IsBase64Encoded : false ,
218+ },
219+ }
215220 } else {
216- log .Printf ("client: api completed with error %s\n " , err .Error ())
221+ log .Printf ("client: api error %s\n " , recovered .Error ())
217222 stackTrace := string (debug .Stack ())
218223 println (stackTrace )
219- evt = ErrorToTaskComplete ( err )
224+ err = recovered
220225 }
221226 }
222227 }()
223228
224229 if httpHandler == nil {
225- log . Printf ("client: task completed with error %s \n " , ErrBadRequest . Error () )
226- return ErrorToTaskComplete ( ErrBadRequest )
230+ println ("client: api error, not registered" )
231+ return ApiCompleteEvent {}, fmt . Errorf ( "api not registered" )
227232 }
228233
229234 apiCtx := ApiContext {
@@ -232,38 +237,32 @@ func runApi(ctx context.Context, event ApiStartEvent) (evt TaskCompleteEvent) {
232237 serviceClient : serviceClient ,
233238 config : appConfig ,
234239 }
235- newCtx := context .WithValue (ctx , "polycode.context" , apiCtx )
236240
237- res , err := invokeHandler (newCtx , httpHandler , event .Request )
241+ newCtx := context .WithValue (ctx , "polycode.context" , apiCtx )
242+ httpReq , err := convertToHttpRequest (newCtx , event .Request )
238243 if err != nil {
239- fmt .Printf ("client: task completed with error %s\n " , err .Error ())
240- return ErrorToTaskComplete (err )
244+ return ApiCompleteEvent {}, err
241245 }
242246
243- println ("client: task completed" )
244- return ValueToTaskComplete (res )
247+ res := invokeHandler (httpHandler , httpReq )
248+ println ("client: api completed" )
249+ return ApiCompleteEvent {
250+ Response : res ,
251+ }, nil
245252}
246253
247- func ValueToTaskComplete (output any ) TaskCompleteEvent {
248- taskOutput := TaskOutput {
254+ func ValueToServiceComplete (output any ) ServiceCompleteEvent {
255+ return ServiceCompleteEvent {
249256 Output : output ,
250257 IsError : false ,
251258 Error : Error {},
252259 }
253-
254- return TaskCompleteEvent {
255- Output : taskOutput ,
256- }
257260}
258261
259- func ErrorToTaskComplete (err error ) TaskCompleteEvent {
260- taskOutput := TaskOutput {
262+ func ErrorToServiceComplete (err error ) ServiceCompleteEvent {
263+ return ServiceCompleteEvent {
261264 Output : nil ,
262265 IsError : true ,
263266 Error : ErrTaskExecError .Wrap (err ),
264267 }
265-
266- return TaskCompleteEvent {
267- Output : taskOutput ,
268- }
269268}
0 commit comments