1
0
Fork 0
mirror of https://github.com/imjasonh/kontain.me synced 2026-07-07 00:32:28 +00:00
kontain.me/pkg/serve/error.go
Jason Hall f70dbcb83d readme: links to oci.dag.dev
Signed-off-by: Jason Hall <imjasonh@gmail.com>
2026-05-14 11:21:27 -04:00

39 lines
728 B
Go

package serve
import (
"encoding/json"
"errors"
"net/http"
"github.com/google/go-containerregistry/pkg/v1/remote/transport"
)
var ErrNotFound = errors.New("not found")
func Error(w http.ResponseWriter, err error) {
code := "MANIFEST_UNKNOWN"
httpCode := http.StatusNotFound
if terr, ok := err.(*transport.Error); ok {
http.Error(w, "", terr.StatusCode)
json.NewEncoder(w).Encode(terr.Errors)
return
}
http.Error(w, "", httpCode)
json.NewEncoder(w).Encode(&resp{
Errors: []e{{
Code: code,
Message: err.Error(),
}},
})
}
type resp struct {
Errors []e `json:"errors"`
}
type e struct {
Code string `json:"code"`
Message string `json:"message"`
Reason string `json:"reason,omitempty"`
}