error.go 1017 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package rest
  2. import (
  3. "git.ali33.ru/fcg-xvii/go-tools/json"
  4. )
  5. type IErrorArgs interface {
  6. Name() string
  7. Args() json.Map
  8. Error() string
  9. Map() json.Map
  10. }
  11. //////////////////////////////////
  12. func ErrorFiled(field, message string) IErrorArgs {
  13. return &Error{
  14. name: "ErrField",
  15. args: json.Map{
  16. "field": field,
  17. "message": message,
  18. },
  19. }
  20. }
  21. func NewError(name string, args json.Map) IErrorArgs {
  22. return &Error{
  23. name: name,
  24. args: args,
  25. }
  26. }
  27. func ErrorMessage(name, text string) IErrorArgs {
  28. return &Error{
  29. name: name,
  30. args: json.Map{
  31. "message": text,
  32. },
  33. }
  34. }
  35. //////////////////////////////////////////////
  36. type Error struct {
  37. name string
  38. args json.Map
  39. }
  40. func (s *Error) Name() string {
  41. return s.name
  42. }
  43. func (s *Error) Args() json.Map {
  44. return s.args
  45. }
  46. func (s *Error) Error() string {
  47. m := json.Map{
  48. "name": s.name,
  49. "args": s.args,
  50. }
  51. return m.JSONString()
  52. }
  53. func (s *Error) Map() json.Map {
  54. return json.Map{
  55. "error": true,
  56. "name": s.name,
  57. "args": s.args,
  58. }
  59. }