in lambda/rapidcore/standalone/directInvokeHandler.go [13:39]
func DirectInvokeHandler(w http.ResponseWriter, r *http.Request, s rapidcore.InteropServer) {
tok := s.CurrentToken()
if tok == nil {
log.Errorf("Attempt to call directInvoke without Reserve")
w.WriteHeader(http.StatusBadRequest)
return
}
invoke, err := directinvoke.ReceiveDirectInvoke(w, r, *tok)
if err != nil {
log.Errorf("direct invoke error: %s", err)
return
}
if err := s.FastInvoke(w, invoke, true); err != nil {
switch err {
case rapidcore.ErrNotReserved:
case rapidcore.ErrAlreadyReplied:
case rapidcore.ErrAlreadyInvocating:
log.Errorf("Failed to set reply stream: %s", err)
w.WriteHeader(http.StatusBadRequest)
return
case rapidcore.ErrInvokeReservationDone:
w.WriteHeader(http.StatusBadGateway)
}
}
}