package rest import ( "git.ali33.ru/fcg-xvii/go-tools/json" ) type IErrorArgs interface { Name() string Args() json.Map Error() string Map() json.Map } ////////////////////////////////// func ErrorFiled(field, message string) IErrorArgs { return &Error{ name: "ErrField", args: json.Map{ "field": field, "message": message, }, } } func NewError(name string, args json.Map) IErrorArgs { return &Error{ name: name, args: args, } } func ErrorMessage(name, text string) IErrorArgs { return &Error{ name: name, args: json.Map{ "message": text, }, } } ////////////////////////////////////////////// type Error struct { name string args json.Map } func (s *Error) Name() string { return s.name } func (s *Error) Args() json.Map { return s.args } func (s *Error) Error() string { m := json.Map{ "name": s.name, "args": s.args, } return m.JSONString() } func (s *Error) Map() json.Map { return json.Map{ "error": true, "name": s.name, "args": s.args, } }