package admin import ( "context" "fmt" "net/http" "forge.cadoles.com/cadoles/bouncer/internal/schema" "github.com/getsentry/sentry-go" "gitlab.com/wpetit/goweb/api" "gitlab.com/wpetit/goweb/logger" ) const ErrCodeAlreadyExist api.ErrorCode = "already-exist" func invalidDataErrorResponse(w http.ResponseWriter, r *http.Request, err *schema.InvalidDataError) { keyErrors := err.KeyErrors() message := "" for idx, err := range keyErrors { if idx != 0 { message += ", " } message += fmt.Sprintf("Path [%s]: %s", err.PropertyPath, err.Message) } api.ErrorResponse(w, http.StatusBadRequest, api.ErrCodeInvalidRequest, &struct { Message string `json:"message"` }{ Message: message, }) return } func logAndCaptureError(ctx context.Context, message string, err error) { sentry.CaptureException(err) logger.Error(ctx, message, logger.CapturedE(err)) }