vo.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package util
  2. import (
  3. "fmt"
  4. "log"
  5. "runtime"
  6. )
  7. // Return for return type
  8. type Return interface{}
  9. // Status of API return
  10. type Status struct {
  11. Status string `json:"status"`
  12. Message string `json:"message"`
  13. Data interface{} `json:"data"`
  14. ErrorCode string `json:"error_code"`
  15. Type string `json:"type"`
  16. }
  17. // NewOkStatus return ok status
  18. func NewOkStatus() *Status {
  19. return &Status{Status: "Ok"}
  20. }
  21. // NewErrorStatus return error status
  22. func NewErrorStatus() *Status {
  23. _, file, no, ok := runtime.Caller(1)
  24. if ok {
  25. log.Println(fmt.Sprintf("Error: called from %s#%d\n", file, no))
  26. }
  27. return &Status{Status: "Error"}
  28. }
  29. func (s *Status) SetData(data interface{}) *Status {
  30. s.Data = data
  31. return s
  32. }
  33. func (s *Status) SetMessage(message string) *Status {
  34. s.Message = message
  35. return s
  36. }
  37. func (s *Status) SetType(t string) *Status {
  38. s.Type = t
  39. return s
  40. }
  41. func (s *Status) SetErrorCode(e string) *Status {
  42. s.ErrorCode = e
  43. return s
  44. }
  45. func (s *Status) Error() string {
  46. return s.Message
  47. }