package exerr import ( "gogs.mikescher.com/BlackForestBytes/goext/langext" "net/http" ) type ErrorCategory struct{ Category string } var ( CatWrap = ErrorCategory{"Wrap"} // The error is simply wrapping another error (e.g. when a grpc call returns an error) CatSystem = ErrorCategory{"System"} // An internal system error (e.g. connection to db failed) CatUser = ErrorCategory{"User"} // The user (the API caller) did something wrong (e.g. he has no permissions to do this) CatForeign = ErrorCategory{"Foreign"} // A foreign error that some component threw (e.g. an unknown mongodb error), happens if we call Wrap(..) on an non-bmerror value ) var AllCategories = []ErrorCategory{CatWrap, CatSystem, CatUser, CatForeign} type ErrorSeverity struct{ Severity string } var ( SevTrace = ErrorSeverity{"Trace"} SevDebug = ErrorSeverity{"Debug"} SevInfo = ErrorSeverity{"Info"} SevWarn = ErrorSeverity{"Warn"} SevErr = ErrorSeverity{"Err"} SevFatal = ErrorSeverity{"Fatal"} ) var AllSeverities = []ErrorSeverity{SevTrace, SevDebug, SevInfo, SevWarn, SevErr, SevFatal} type ErrorType struct { Key string DefaultStatusCode *int } var ( TypeInternal = ErrorType{"Internal", langext.Ptr(http.StatusInternalServerError)} TypePanic = ErrorType{"Panic", langext.Ptr(http.StatusInternalServerError)} TypeWrap = ErrorType{"Wrap", nil} // other values come from pkgconfig ) type LogPrintLevel string const ( LogPrintFull LogPrintLevel = "Full" LogPrintOverview LogPrintLevel = "Overview" LogPrintShort LogPrintLevel = "Short" )