package error import "net/http" // GenericError represent as the contract of generic error type GenericError interface { Error() string ErrCode() string StatusCode() int } type InternalServerError string // Error for complying the error interface func (e InternalServerError) Error() string { return string(e) } // ErrCode will return the error code based on the error data type func (e InternalServerError) ErrCode() string { return "INTERNAL_SERVER_ERROR" } // StatusCode will return the HTTP status code based on the error data type func (e InternalServerError) StatusCode() int { return http.StatusInternalServerError } type ContextError string // Error for complying the error interface func (e ContextError) Error() string { return string(e) } // ErrCode will return the error code based on the error data type func (e ContextError) ErrCode() string { return "CONTEXT_ERROR" } // StatusCode will return the HTTP status code based on the error data type func (e ContextError) StatusCode() int { return http.StatusRequestTimeout }