Put wrapped errors into the detailed field on serialization (#20846)

Этот коммит содержится в:
Tim Scheuermann
2022-08-18 14:22:12 +02:00
коммит произвёл GitHub
родитель 53985ef162
Коммит e665542c91
3 изменённых файлов: 68 добавлений и 1 удалений

Просмотреть файл

@@ -265,10 +265,30 @@ func (er *AppError) SystemMessage(T i18n.TranslateFunc) string {
}
func (er *AppError) ToJSON() string {
// turn the wrapped error into a detailed message
detailed := er.DetailedError
defer func() {
er.DetailedError = detailed
}()
er.wrappedToDetailed()
b, _ := json.Marshal(er)
return string(b)
}
func (er *AppError) wrappedToDetailed() {
if er.wrapped == nil {
return
}
if er.DetailedError != "" {
er.DetailedError += ", "
}
er.DetailedError += er.wrapped.Error()
}
func (er *AppError) Unwrap() error {
return er.wrapped
}