Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

107 строки
2.3 KiB

  1. package errs
  2. import (
  3. "fmt"
  4. )
  5. type SdkError struct {
  6. ErrorType string
  7. ErrorMessage string
  8. error error
  9. }
  10. func NewSdkError(errorType string, msg string, err error) *SdkError {
  11. return &SdkError{
  12. ErrorType: errorType,
  13. ErrorMessage: msg,
  14. error: err,
  15. }
  16. }
  17. func (err *SdkError) Error() string {
  18. return fmt.Sprintf("{\"errorType\": \"%s\", \"error-message\": \"%s\"}", err.ErrorType, err.ErrorMessage)
  19. }
  20. func (err *SdkError) DetailError() string {
  21. return fmt.Sprintf("{\"errorType\": \"%s\", \"error-message\": \"%s\", \"error\": \"%s\"}", err.ErrorType, err.ErrorMessage, err.error)
  22. }
  23. type ServerRequestError struct {
  24. *SdkError
  25. }
  26. func NewServerRequestError(msg string, err error) *ServerRequestError {
  27. return &ServerRequestError{
  28. NewSdkError("ServerRequestError", msg, err),
  29. }
  30. }
  31. type ServerResponseError struct {
  32. *SdkError
  33. Code int
  34. Headers map[string][]string
  35. Body string
  36. }
  37. func NewServerResponseError(msg string, err error, code int, headers map[string][]string, body string) *ServerResponseError {
  38. message := msg
  39. if len(message) == 0 {
  40. message = fmt.Sprintf("code=%d", code)
  41. }
  42. return &ServerResponseError{
  43. SdkError: NewSdkError("ServerResponseError", message, err),
  44. Code: code,
  45. Headers: headers,
  46. Body: body,
  47. }
  48. }
  49. type ConnectionTimeOutError struct {
  50. *SdkError
  51. }
  52. func NewConnectionTimeOutError(msg string, err error) *ConnectionTimeOutError {
  53. return &ConnectionTimeOutError{
  54. SdkError: NewSdkError("ConnectionTimeOutError", msg, err),
  55. }
  56. }
  57. type SignatureError struct {
  58. *SdkError
  59. }
  60. func NewSignatureError(msg string, err error) *SignatureError {
  61. return &SignatureError{
  62. SdkError: NewSdkError("SignatureError", msg, err),
  63. }
  64. }
  65. type SslHandShakeError struct {
  66. *SdkError
  67. }
  68. func NewSslHandShakeError(msg string, err error) *SslHandShakeError {
  69. return &SslHandShakeError{
  70. SdkError: NewSdkError("SslHandShakeError", msg, err),
  71. }
  72. }
  73. type InvalidParameterError struct {
  74. *SdkError
  75. }
  76. func NewInvalidParameterError(msg string, err error) *InvalidParameterError {
  77. return &InvalidParameterError{
  78. NewSdkError("InvalidParameterError", msg, err),
  79. }
  80. }
  81. type CredentialError struct {
  82. *SdkError
  83. }
  84. func NewCredentialError(msg string, err error) *CredentialError {
  85. return &CredentialError{
  86. NewSdkError("CredentialError", msg, err),
  87. }
  88. }