Documentation
¶
Index ¶
- Constants
- Variables
- func IsDigits(val reflect.Value, args ...string) bool
- func IsEnumValid(val reflect.Value, args ...string) bool
- func IsMaxValid(val reflect.Value, args ...string) bool
- func IsMinValid(val reflect.Value, args ...string) bool
- func IsRangeValid(val reflect.Value, args ...string) bool
- func IsRegularValid(val reflect.Value, args ...string) bool
- func IsRequiredValid(val reflect.Value, args ...string) bool
- func PrepareActualValidationRules(customValidationRules map[string]ValidationCallback)
- type ErrorData
- type IError
- func HttpValidationError(args ...string) IError
- func New(code interface{}, message string) IError
- func NewF(code interface{}, message string, args ...interface{}) IError
- func NewFWithName(code interface{}, name string, message string, args ...interface{}) IError
- func NewWithName(code interface{}, name string, message string) IError
- func UnPack(data []byte) IError
- func ValidateStruct(v interface{}) IError
- type PortError
- func (e *PortError) Code(code interface{}) IError
- func (e *PortError) Error() string
- func (e *PortError) FlushDetails() IError
- func (e *PortError) GetCode() interface{}
- func (e *PortError) GetDetails() []IError
- func (e *PortError) GetHTTP() int
- func (e *PortError) HTTP(httpCode int) IError
- func (e *PortError) IfDetails() IError
- func (e *PortError) MarshalJSON() ([]byte, error)
- func (e *PortError) MergeDetails(error ...IError) IError
- func (e *PortError) Origin() *PortError
- func (e *PortError) Pack(b *bytes.Buffer)
- func (e *PortError) PopDetail() IError
- func (e *PortError) PushDetail(code interface{}, name string, message string) IError
- func (e *PortError) UnmarshalJSON(data []byte) error
- type ValidationCallback
- type ValidationRule
Constants ¶
const ( // PackControlSymbolTilda ~ symbol PackControlSymbolTilda = byte(126) // PackControlSymbolVertical | symbol PackControlSymbolVertical = byte(124) )
const ( PortErrorSystem = "PORTABLE_ERROR_SYSTEM" PortErrorClient = "PORTABLE_ERROR_CLIENT" PortErrorDatabaseQuery = "PORTABLE_ERROR_DATABASE" PortErrorConsole = "PORTABLE_ERROR_CONSOLE" PortErrorLogic = "PORTABLE_ERROR_LOGIC" PortErrorRequest = "PORTABLE_ERROR_REQUEST" PortErrorResponse = "PORTABLE_ERROR_RESPONSE" PortErrorConflict = "PORTABLE_ERROR_CONFLICT" PortErrorTransaction = "PORTABLE_ERROR_TRANSACTION" PortErrorConnection = "PORTABLE_ERROR_CONNECTION" PortErrorUpdate = "PORTABLE_ERROR_UPDATE" PortErrorCreate = "PORTABLE_ERROR_CREATE" PortErrorDelete = "PORTABLE_ERROR_DELETE" PortErrorLoad = "PORTABLE_ERROR_LOAD" PortErrorSearch = "PORTABLE_ERROR_SEARCH" PortErrorParam = "PORTABLE_ERROR_PARAM" PortErrorValidation = "PORTABLE_ERROR_VALIDATION" PortErrorScript = "PORTABLE_ERROR_SCRIPT" PortErrorDescriptor = "PORTABLE_ERROR_DESCRIPTOR" PortErrorNotification = "PORTABLE_ERROR_NOTIFICATION" PortErrorConsumer = "PORTABLE_ERROR_CONSUMER" PortErrorProducer = "PORTABLE_ERROR_PRODUCER" PortErrorCore = "PORTABLE_ERROR_CORE" PortErrorHandler = "PORTABLE_ERROR_HANDLER" PortErrorAccess = "PORTABLE_ERROR_ACCESS" PortErrorPermission = "PORTABLE_ERROR_PERMISSION" PortErrorAuth = "PORTABLE_ERROR_AUTH" PortErrorMigration = "PORTABLE_ERROR_MIGRATION" PortErrorType = "PORTABLE_ERROR_TYPE" PortErrorFunction = "PORTABLE_ERROR_FUNCTION" PortErrorEncoder = "PORTABLE_ERROR_ENCODER" PortErrorDecoder = "PORTABLE_ERROR_DECODER" PortErrorReader = "PORTABLE_ERROR_READER" PortErrorWriter = "PORTABLE_ERROR_WRITER" PortErrorCloser = "PORTABLE_ERROR_CLOSER" PortErrorTemplate = "PORTABLE_ERROR_TEMPLATE" PortErrorCommand = "PORTABLE_ERROR_COMMAND" PortErrorProcess = "PORTABLE_ERROR_PROCESS" PortErrorIO = "PORTABLE_ERROR_IO" PortErrorRender = "PORTABLE_ERROR_RENDER" PortErrorState = "PORTABLE_ERROR_STATE" PortErrorMemory = "PORTABLE_ERROR_MEMORY" PortErrorNetwork = "PORTABLE_ERROR_NETWORK" PortErrorDevice = "PORTABLE_ERROR_DEVICE" PortErrorRecursion = "PORTABLE_ERROR_RECURSION" PortErrorArgument = "PORTABLE_ERROR_ARGUMENT" PortErrorBody = "PORTABLE_ERROR_BODY" PortErrorHeader = "PORTABLE_ERROR_HEADER" PortErrorProtocol = "PORTABLE_ERROR_PROTOCOL" PortErrorSize = "PORTABLE_ERROR_SIZE" PortErrorPriority = "PORTABLE_ERROR_PRIORITY" PortErrorCondition = "PORTABLE_ERROR_CONDITION" PortErrorIteration = "PORTABLE_ERROR_ITERATION" PortErrorParser = "PORTABLE_ERROR_PARSER" PortErrorEnvelop = "PORTABLE_ERROR_ENVELOP" PortErrorEnvironment = "PORTABLE_ERROR_ENVIRONMENT" )
Variables ¶
var ( // ErrorPackSign Define firse byte for extended error serial protocol ErrorPackSign = []byte("xe") // PortErrorPackIdentifier check bytes to confirm that is PortError package PortErrorPackIdentifier = []byte("pe") // PackErrorPrefix Whole preffix for packed error PackErrorPrefix = []byte{120, 101, 58, 112, 101, 58} )
Functions ¶
func IsEnumValid ¶ added in v1.10.0
IsEnumValid In list validation rule
func IsMaxValid ¶ added in v1.11.0
IsMaxValid check max
func IsMinValid ¶ added in v1.11.0
IsMinValid check min
func IsRangeValid ¶ added in v1.10.0
IsRangeValid Range list validation rule
func IsRegularValid ¶ added in v1.10.0
IsRegularValid check regular expression
func IsRequiredValid ¶ added in v1.10.0
IsRequiredValid Required validation rule
func PrepareActualValidationRules ¶ added in v1.10.0
func PrepareActualValidationRules(customValidationRules map[string]ValidationCallback)
PrepareActualValidationRules func to append basicValidationRules or replace existing rules customValidationRules If you want to use your own validation rules add the rules in to customValidationRules var
Types ¶
type ErrorData ¶
type ErrorData struct {
// Code message
Code interface{}
// Name of detail
Name string
// Error message
Message string
}
ErrorData Detailed error
type IError ¶
type IError interface {
// Code Set error code
Code(code interface{}) IError
// Error interface std
Error() string
// FlushDetails Reset all details
FlushDetails() IError
// GetCode Get error code
GetCode() interface{}
// GetDetails Get error details
GetDetails() []IError
// GetHTTP Get http code
GetHTTP() int
// HTTP Set HTTP code
HTTP(httpCode int) IError
// IfDetails Return error if error has details else nil
IfDetails() IError
// MergeDetails Merge detail to error
MergeDetails(e ...IError) IError
// Origin Get portable error
Origin() *PortError
// Pack error
Pack(b *bytes.Buffer)
// PopDetail Get detail from
PopDetail() IError
// PushDetail Add error detail
PushDetail(code interface{}, name string, message string) IError
}
IError Common Error Interface
func HttpValidationError ¶ added in v1.10.3
HttpValidationError prepare validation error with 400 http code
func NewFWithName ¶
NewFWithName error with name format
func NewWithName ¶
NewWithName error with name
func ValidateStruct ¶ added in v1.10.0
func ValidateStruct(v interface{}) IError
ValidateStruct struct fields validation
type PortError ¶
type PortError struct {
// Error data
ErrorData
// contains filtered or unexported fields
}
PortError Portable error
func (*PortError) FlushDetails ¶
FlushDetails Flush detail
func (*PortError) GetCode ¶ added in v1.7.0
func (e *PortError) GetCode() interface{}
GetCode Get Error Code
func (*PortError) GetDetails ¶
GetDetails Interface error get details
func (*PortError) IfDetails ¶ added in v1.9.0
IfDetails Return nil when error does not contain details
func (*PortError) MarshalJSON ¶
MarshalJSON Std error marshal
func (*PortError) MergeDetails ¶ added in v1.8.0
MergeDetails Merge detail from other errors
func (*PortError) PushDetail ¶
PushDetail Interface error push detail
func (*PortError) UnmarshalJSON ¶
UnmarshalJSON Unmarshal error
type ValidationCallback ¶ added in v1.10.0
ValidationCallback function that performs validation rule
type ValidationRule ¶ added in v1.10.0
ValidationRule validation params
func ParseValidTag ¶ added in v1.10.0
func ParseValidTag(validTag string) []ValidationRule
ParseValidTag parse validation tag for rule and arguments Example valid:"exp~[0-5]+;range~1-50;enum~5,10,15,20,25"`