diff --git a/internal/api/middleware.go b/internal/api/middleware.go index cf9108f..95d2175 100644 --- a/internal/api/middleware.go +++ b/internal/api/middleware.go @@ -50,8 +50,12 @@ func agentErrToHTTP(err error) (int, string, string) { return http.StatusNotFound, "not_found", err.Error() case connect.CodeInvalidArgument: return http.StatusBadRequest, "invalid_request", err.Error() - case connect.CodeFailedPrecondition: + case connect.CodeFailedPrecondition, connect.CodeAlreadyExists: return http.StatusConflict, "conflict", err.Error() + case connect.CodePermissionDenied: + return http.StatusForbidden, "forbidden", err.Error() + case connect.CodeUnimplemented: + return http.StatusNotImplemented, "agent_error", err.Error() default: return http.StatusBadGateway, "agent_error", err.Error() } diff --git a/internal/hostagent/server.go b/internal/hostagent/server.go index 0a86cf6..fad0d40 100644 --- a/internal/hostagent/server.go +++ b/internal/hostagent/server.go @@ -290,7 +290,7 @@ func (s *Server) MakeDir( resp, err := client.MakeDir(ctx, msg.Path) if err != nil { - return nil, connect.NewError(connect.CodeInternal, fmt.Errorf("make dir: %w", err)) + return nil, fmt.Errorf("make dir: %w", err) } return connect.NewResponse(&pb.MakeDirResponse{