package controller import ( "errors" "github.com/gin-gonic/gin" "hy2xs-admin/model/vo" "hy2xs-admin/service" ) // failService переводит отказ сервисного слоя в ответ панели. // // Доменный отказ несёт код и, если он относится к полю формы, имя этого поля // (см. service.PeerError). Всё остальное остаётся отказом уровня операции с // человеческим сообщением — панель покажет его как есть, но разбирать текст ей // при этом не придётся ни в одном известном случае. func failService(err error, c *gin.Context) { var peerErr *service.PeerError if errors.As(err, &peerErr) { vo.FailField(peerErr.Code, peerErr.Field, peerErr.Message, c) return } vo.Fail(err.Error(), c) }