const (
MustMatch KeywordType = "must_match"
Wildcard KeywordType = "wildcard"
And KeywordCondition = "and"
Or KeywordCondition = "or"
)
const (
DatabaseDriverPOSTGRES = "postgres"
DatabaseDriverMSSQL = "mssql"
DatabaseDriverMYSQL = "mysql"
)
const DateFormat = "2006-01-02 15:04:05"
const EnvFileName = ".env"
const EnvTestFileName = "test.env"
const TimeFormat = "15:04:05"
const TimeFormatRegex = "^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$"
var ArrayBetweenM = func(field string, min int, max int) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_ARRAY_SIZE_BETWEEN", Message: fmt.Sprintf("The %v field field must contain between %v and %v item(s)", field, min, max), Data: map[string]interface{}{ "min": min, "max": max, }, } }
var ArrayM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_ARRAY", Message: "The " + field + " field must be array format", } }
var ArrayMaxM = func(field string, max int) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_ARRAY_SIZE_MAX", Message: fmt.Sprintf("The %v field must not be greater than %v item(s)", field, max), Data: max, } }
var ArrayMinM = func(field string, min int) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_ARRAY_SIZE_MIN", Message: fmt.Sprintf("The %v field required at least %v items", field, min), Data: min, } }
var ArraySizeM = func(field string, size int) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_ARRAY_SIZE", Message: fmt.Sprintf("The %v field must contain %v item(s)", field, size), Data: size, } }
var Base64M = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "BASE64", Message: "The " + field + " must be base64 format", } }
var BooleanM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TYPE", Message: "The " + field + " field must be boolean", } }
var DateTimeAfterM = func(field string, after string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_DATE_TIME", Message: fmt.Sprintf("The "+field+` field must be after "%s"`, after), } }
var DateTimeBeforeM = func(field string, before string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_DATE_TIME", Message: fmt.Sprintf("The "+field+` field must be before "%s"`, before), } }
var DateTimeM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_DATE_TIME", Message: "The " + field + ` field must be in "yyyy-MM-dd HH:mm:ss" format`, } }
var EmailM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_EMAIL", Message: fmt.Sprintf("The %v field must be Email Address", field), } }
var EmailServiceParserError = Error{ Status: http.StatusInternalServerError, Code: "EMAIL_PARSING_ERROR", Message: "can not parse email", }
var EmailServiceSendFailed = Error{ Status: http.StatusBadGateway, Code: "SEND_EMAIL_ERROR", Message: "can not send email", }
var ExistsM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "NOT_EXISTS", Message: "The " + field + " field's value is not exists", } }
var FloatNumberBetweenM = func(field string, min float64, max float64) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_NUMBER_MIN", Message: fmt.Sprintf("The %v field must be from %v to %v", field, min, max), } }
var FloatNumberMaxM = func(field string, size float64) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_NUMBER_MAX", Message: fmt.Sprintf("The %v field must be less than or equal %v", field, size), Data: size, } }
var FloatNumberMinM = func(field string, size float64) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_NUMBER_MIN", Message: fmt.Sprintf("The %v field must be greater than or equal %v", field, size), Data: size, } }
var IPM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_IP", Message: fmt.Sprintf("The %v field must be IP Address", field), } }
var InM = func(field string, rules string) *IValidMessage { split := strings.Split(rules, "|") msg := strings.Join(split, ", ") return &IValidMessage{ Name: field, Code: "INVALID_VALUE_NOT_IN_LIST", Message: "The " + field + " field must be one of " + msg, Data: split, } }
var JSONArrayM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_JSON_ARRAY", Message: "The " + field + " field must be array format", } }
var JSONM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_JSON", Message: "The " + field + " field must be json", } }
var JSONObjectEmptyM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_JSON", Message: "The " + field + " field cannot be empty object", } }
var JSONObjectM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_JSON", Message: "The " + field + " field must be json object", } }
var MQError = Error{ Status: http.StatusInternalServerError, Code: "MQ_ERROR", Message: "mq internal error"}
var NumberBetweenM = func(field string, min int64, max int64) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_NUMBER_MIN", Message: fmt.Sprintf("The %v field must be from %v to %v", field, min, max), } }
var NumberM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TYPE", Message: "The " + field + " field cannot parse to number", } }
var NumberMaxM = func(field string, size int64) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_NUMBER_MAX", Message: fmt.Sprintf("The %v field must be less than or equal %v", field, size), Data: size, } }
var NumberMinM = func(field string, size int64) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_NUMBER_MIN", Message: fmt.Sprintf("The %v field must be greater than or equal %v", field, size), Data: size, } }
var ObjectEmptyM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TYPE", Message: "The " + field + " field cannot be empty object", } }
var RequiredM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "REQUIRED", Message: "The " + field + " field is required", } }
var StrMaxM = func(field string, max int) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_SIZE_MAX", Message: fmt.Sprintf("The %v field must not be longer than %v character(s)", field, max), Data: max, } }
var StrMinM = func(field string, min int) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_SIZE_MIN", Message: fmt.Sprintf("The %v field must not be shorter than %v character(s)", field, min), Data: min, } }
var StringContainM = func(field string, substr string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_CONTAIN", Message: fmt.Sprintf("The %v field must contain %v", field, substr), Data: substr, } }
var StringEndWithM = func(field string, substr string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_END_WITH", Message: fmt.Sprintf("The %v field must end with %v", field, substr), Data: substr, } }
var StringLowercaseM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_LOWERCASE", Message: fmt.Sprintf("The %v field must be lowercase", field), } }
var StringM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TYPE", Message: "The " + field + " field must be string", } }
var StringNotContainM = func(field string, substr string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_NOT_CONTAIN", Message: fmt.Sprintf("The %v field must not contain %v", field, substr), Data: substr, } }
var StringStartWithM = func(field string, substr string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_START_WITH", Message: fmt.Sprintf("The %v field must start with %v", field, substr), Data: substr, } }
var StringUppercaseM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_UPPERCASE", Message: fmt.Sprintf("The %v field must be uppercase", field), } }
var TimeAfterM = func(field string, after string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TIME", Message: fmt.Sprintf("The "+field+` field must be after "%s"`, after), } }
var TimeBeforeM = func(field string, before string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TIME", Message: fmt.Sprintf("The "+field+` field must be before "%s"`, before), } }
var TimeM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TIME", Message: "The " + field + ` field must be in "HH:mm:ss"" format`, } }
var URLM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_URL", Message: "The " + field + " field is not url", } }
var UniqueM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "UNIQUE", Message: "The " + field + " field's value already exists", } }
func CaptureError(ctx IContext, level sentry.Level, err error, args ...interface{})
func CaptureErrorEcho(ctx echo.Context, level sentry.Level, err error)
func CaptureHTTPError(ctx IHTTPContext, level sentry.Level, err error, args ...interface{})
func CaptureSimpleError(level sentry.Level, err error, args ...interface{})
func Core(options *HTTPContextOptions) func(next echo.HandlerFunc) echo.HandlerFunc
func Crash(err error) error
func ErrorToJson(err error) (m map[string]jsonErr)
func Fake(a interface{}) error
func GetBodyString(c echo.Context) []byte
func HTTPMiddlewareCore(options *HTTPContextOptions) echo.MiddlewareFunc
func HTTPMiddlewareCreateLogger(next echo.HandlerFunc) echo.HandlerFunc
func HTTPMiddlewareFromCache(key func(IHTTPContext) string) echo.MiddlewareFunc
func HTTPMiddlewareHandleError(env IENV) echo.HTTPErrorHandler
func HTTPMiddlewareHandleNotFound(c echo.Context) error
func HTTPMiddlewareRateLimit(options *HTTPContextOptions) echo.MiddlewareFunc
func HTTPMiddlewareRecoverWithConfig(env IENV, config middleware.RecoverConfig) echo.MiddlewareFunc
func HTTPMiddlewareRequestID() echo.MiddlewareFunc
func IsError(err error) bool
IsError returns true if given error is validate error
func MockMiddleware(model interface{}, options *MockMiddlewareOptions) func(next echo.HandlerFunc) echo.HandlerFunc
func NewHTTPServer(options *HTTPContextOptions) *echo.Echo
func NewMockENV() *mockENV
func Recover(textError string)
func RequesterToStructPagination(items interface{}, options *PageOptions, requester func() (*RequestResponse, error)) (*PageResponse, IError)
func SetSearch(db *gorm.DB, keywordCondition *KeywordConditionWrapper) *gorm.DB
func SetSearchSimple(db *gorm.DB, q string, columns []string) *gorm.DB
func StartHTTPServer(e *echo.Echo, env IENV)
func WithHTTPContext(h HandlerFunc) echo.HandlerFunc
type ABCIContext struct {
IContext
}
func (A ABCIContext) GetMessageJSON(tx []byte) string
func (A ABCIContext) GetOperation(tx []byte) string
type ABCIContextOptions struct {
ContextOptions *ContextOptions
}
type ArchiveByteBody struct {
File []byte
Name string
}
type ArchiverOptions struct {
}
type BaseValidator struct {
// contains filtered or unexported fields
}
func (b *BaseValidator) AddValidator(errs ...*Valid)
func (b *BaseValidator) Error() IError
func (b *BaseValidator) GetValidator() *Valid
func (b *BaseValidator) IsArrayBetween(array interface{}, min int, max int, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsArrayMax(array interface{}, size int, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsArrayMin(array interface{}, size int, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsArraySize(array interface{}, size int, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsBase64(field *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsBoolRequired(value interface{}, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsCustom(customFunc func() (bool, *IValidMessage)) (bool, *IValidMessage)
func (b *BaseValidator) IsDateTime(input *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsDateTimeAfter(input *string, after *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsDateTimeBefore(input *string, before *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsEmail(field *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsExists(ctx IContext, field *string, table string, column string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsExistsWithCondition( ctx IContext, table string, condition map[string]interface{}, fieldPath string, ) (bool, *IValidMessage)
func (b *BaseValidator) IsFloatNumberBetween(field *float64, min float64, max float64, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsFloatNumberMax(field *float64, max float64, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsFloatNumberMin(field *float64, min float64, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsIP(field *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONArray(field *json.RawMessage, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONArrayMax(field *json.RawMessage, max int, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONArrayMin(field *json.RawMessage, min int, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONBoolPathRequired(json *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONObject(field *json.RawMessage, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONObjectNotEmpty(field *json.RawMessage, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONObjectPath(j *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONPathRequireNotEmpty(j *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONPathRequired(j *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONPathStrIn(json *json.RawMessage, path string, rules string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONRequired(field *json.RawMessage, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsJSONStrPathRequired(json *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsMongoExistsWithCondition( ctx IContext, table string, filter interface{}, fieldPath string, ) (bool, *IValidMessage)
func (b *BaseValidator) IsMongoStrUnique(ctx IContext, table string, filter interface{}, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsNotEmptyObjectRequired(value interface{}, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsNumberBetween(field *int64, min int64, max int64, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsNumberMax(field *int64, max int64, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsNumberMin(field *int64, min int64, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsRequired(field interface{}, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsRequiredArray(array interface{}, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStrIn(input *string, rules string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStrMax(input *string, size int, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStrMin(input *string, size int, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStrRequired(field *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStrUnique(ctx IContext, field *string, table string, column string, except string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStringContain(field *string, substr string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStringEndWith(field *string, substr string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStringLowercase(field *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStringNotContain(field *string, substr string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStringNumber(field *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStringNumberMin(field *string, min int64, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStringStartWith(field *string, substr string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsStringUppercase(field *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsTime(input *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsTimeAfter(input *string, after *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsTimeBefore(input *string, before *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsTimeRequired(field *time.Time, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) IsURL(field *string, fieldPath string) (bool, *IValidMessage)
func (b *BaseValidator) LoopJSONArray(j *json.RawMessage) []interface{}
func (b *BaseValidator) Merge(errs ...*Valid) IError
func (b *BaseValidator) Must(condition bool, msg *IValidMessage) bool
func (b *BaseValidator) SetPrefix(prefix string)
type ContextMock struct {
mock.Mock
MockRequester *MockRequester
MockCache *MockCache
MockMQ *MockMQ
MockLog *MockLogger
MockDBMongo *MockMongoDB
MockDB *MockDatabase
}
func NewMockContext() *ContextMock
func (m *ContextMock) Cache() ICache
func (m *ContextMock) Caches(name string) ICache
func (m *ContextMock) DB() *gorm.DB
func (m *ContextMock) DBMongo() IMongoDB
func (m *ContextMock) DBS(name string) *gorm.DB
func (m *ContextMock) DBSMongo(name string) IMongoDB
func (m *ContextMock) ENV() IENV
func (m *ContextMock) Log() ILogger
Log return the logger
func (m *ContextMock) MQ() IMQ
func (m *ContextMock) NewError(err error, errorType IError, args ...interface{}) IError
func (m *ContextMock) Requester() IRequester
func (m *ContextMock) SetType(t consts.ContextType)
func (m *ContextMock) Type() string
type ContextOptions struct {
DB *gorm.DB
DBS map[string]*gorm.DB
MongoDB IMongoDB
MongoDBS map[string]IMongoDB
Cache ICache
Caches map[string]ICache
ENV IENV
MQ IMQ
DATA map[string]interface{}
// contains filtered or unexported fields
}
type ContextUser struct {
ID string `json:"id,omitempty"`
Email string `json:"email,omitempty"`
Username string `json:"username,omitempty"`
Name string `json:"name,omitempty"`
Segment string `json:"segment,omitempty"`
Data map[string]string `json:"data,omitempty"`
}
type CronjobContext struct {
IContext
// contains filtered or unexported fields
}
func (c CronjobContext) AddJob(job *gocron.Scheduler, handlerFunc func(ctx ICronjobContext) error)
func (c CronjobContext) Job() *gocron.Scheduler
func (c CronjobContext) Start()
type CronjobContextOptions struct {
ContextOptions *ContextOptions
TimeLocation *time.Location
}
type Database struct {
Driver string
Name string
Host string
User string
Password string
Port string
// contains filtered or unexported fields
}
func NewDatabase(env *ENVConfig) *Database
func NewDatabaseWithConfig(env *ENVConfig, config *gorm.Config) *Database
func (db *Database) Connect() (*gorm.DB, error)
Connect to connect Database
type DatabaseCache struct {
Host string
Port string
}
func NewCache(env *ENVConfig) *DatabaseCache
func (r DatabaseCache) Connect() (ICache, error)
type DatabaseMongo struct {
Name string
Host string
UserName string
Password string
Port string
}
func NewDatabaseMongo(env *ENVConfig) *DatabaseMongo
func (db *DatabaseMongo) Connect() (IMongoDB, error)
Connect to connect Database
type E2EContext struct {
IContext
}
type E2EContextOptions struct {
ContextOptions *ContextOptions
}
type ENVConfig struct {
LogLevel logrus.Level
LogHost string `mapstructure:"log_host"`
LogPort string `mapstructure:"log_port"`
Host string `mapstructure:"host"`
ENV string `mapstructure:"env"`
Service string `mapstructure:"service"`
SentryDSN string `mapstructure:"sentry_dsn"`
DBDriver string `mapstructure:"db_driver"`
DBHost string `mapstructure:"db_host"`
DBName string `mapstructure:"db_name"`
DBUser string `mapstructure:"db_user"`
DBPassword string `mapstructure:"db_password"`
DBPort string `mapstructure:"db_port"`
DBMongoHost string `mapstructure:"db_mongo_host"`
DBMongoName string `mapstructure:"db_mongo_name"`
DBMongoUserName string `mapstructure:"db_mongo_username"`
DBMongoPassword string `mapstructure:"db_mongo_password"`
DBMongoPort string `mapstructure:"db_mongo_port"`
MQHost string `mapstructure:"mq_host"`
MQUser string `mapstructure:"mq_user"`
MQPassword string `mapstructure:"mq_password"`
MQPort string `mapstructure:"mq_port"`
CachePort string `mapstructure:"cache_port"`
CacheHost string `mapstructure:"cache_host"`
ABCIEndpoint string `mapstructure:"abci_endpoint"`
DIDMethodDefault string `mapstructure:"did_method_default"`
DIDKeyTypeDefault string `mapstructure:"did_key_type_default"`
WinRMHost string `mapstructure:"winrm_host"`
WinRMUser string `mapstructure:"winrm_user"`
WinRMPassword string `mapstructure:"winrm_password"`
S3Endpoint string `mapstructure:"s3_endpoint"`
S3AccessKey string `mapstructure:"s3_access_key"`
S3SecretKey string `mapstructure:"s3_secret_key"`
S3Bucket string `mapstructure:"s3_bucket"`
S3Region string `mapstructure:"s3_region"`
S3IsHTTPS bool `mapstructure:"s3_https"`
EmailServer string `mapstructure:"email_server"`
EmailPort int `mapstructure:"email_port"`
EmailUsername string `mapstructure:"email_username"`
EmailPassword string `mapstructure:"email_password"`
EmailSender string `mapstructure:"email_sender"`
}
type ENVType struct {
// contains filtered or unexported fields
}
func (e ENVType) All() map[string]string
func (e ENVType) Bool(key string) bool
func (e ENVType) Config() *ENVConfig
func (e ENVType) Int(key string) int
func (e ENVType) IsDev() bool
IsDev config is Dev config
func (e ENVType) IsMock() bool
func (e ENVType) IsProd() bool
IsProd config is production config
func (e ENVType) IsTest() bool
IsTest config is Test config
func (e ENVType) String(key string) string
type Error struct {
Status int `json:"-"`
Code string `json:"code"`
Message interface{} `json:"message"`
Data interface{} `json:"-"`
Fields interface{} `json:"fields,omitempty"`
// contains filtered or unexported fields
}
func (c Error) Error() string
func (c Error) GetCode() string
func (c Error) GetMessage() interface{}
func (c Error) GetStatus() int
func (c Error) JSON() interface{}
func (c Error) OriginalError() error
type FieldError struct {
Code string `json:"code"`
Message string `json:"message"`
Fields interface{} `json:"fields,omitempty"`
}
func (f FieldError) Error() string
func (f FieldError) GetCode() string
func (f FieldError) GetMessage() interface{}
func (FieldError) GetStatus() int
func (f FieldError) JSON() interface{}
func (f FieldError) OriginalError() error
func (f FieldError) OriginalErrorMessage() string
type File struct {
// contains filtered or unexported fields
}
func (f File) Name() string
func (f File) Value() []byte
type HTTPContext struct {
echo.Context
IContext
// contains filtered or unexported fields
}
func (c *HTTPContext) BindOnly(i interface{}) IError
func (c *HTTPContext) BindWithValidate(ctx IValidateContext) IError
func (c *HTTPContext) BindWithValidateMessage(ctx IValidateContext) IError
func (c *HTTPContext) GetMessage() string
func (c *HTTPContext) GetPageOptions() *PageOptions
func (c *HTTPContext) GetPageOptionsWithOptions(options *PageOptionsOptions) *PageOptions
func (c *HTTPContext) GetSignature() string
func (c HTTPContext) GetUserAgent() *user_agent.UserAgent
func (c *HTTPContext) Log() ILogger
func (c *HTTPContext) NewError(err error, errorType IError, args ...interface{}) IError
func (c *HTTPContext) WithSaveCache(data interface{}, key string, duration time.Duration) interface{}
type HTTPContextOptions struct {
RateLimit *middleware.RateLimiterMemoryStoreConfig
AllowOrigins []string
ContextOptions *ContextOptions
}
type HandlerFunc func(IHTTPContext) error
type IABCIContext interface {
IContext
GetOperation(tx []byte) string
GetMessageJSON(tx []byte) string
}
func NewABCIContext(options *ABCIContextOptions) IABCIContext
type IArchiver interface {
FromURLs(fileName string, urls []string, options *ArchiverOptions) ([]byte, IError)
FromBytes(fileName string, body []ArchiveByteBody, options *ArchiverOptions) ([]byte, IError)
}
func NewArchiver(ctx IContext) IArchiver
type ICSV[T any] interface { //Reader ReadFromFile(data []byte, options *ICSVOptions) ([]T, error) ReadFromPath(path string, options *ICSVOptions) ([]T, error) ReadFromString(data string, options *ICSVOptions) ([]T, error) ReadFromURL(url string, options *ICSVOptions) ([]T, error) ReadFromFileMaps(data []byte, options *ICSVOptions) ([]map[string]interface{}, error) }
func NewCSV[T any](ctx IContext) ICSV[T]
type ICSVOptions struct {
FirstRowIsHeader bool
Separator string
}
type ICache interface {
Set(key string, value interface{}, expiration time.Duration) error
SetJSON(key string, value interface{}, expiration time.Duration) error
Get(dest interface{}, key string) error
GetJSON(dest interface{}, key string) error
Del(key string) error
Close()
}
type IContext interface {
MQ() IMQ
DB() *gorm.DB
DBS(name string) *gorm.DB
DBMongo() IMongoDB
DBSMongo(name string) IMongoDB
WinRM() IWinRM
ENV() IENV
Log() ILogger
Type() consts.ContextType
NewError(err error, errorType IError, args ...interface{}) IError
Requester() IRequester
Cache() ICache
Caches(name string) ICache
GetData(name string) interface{}
GetAllData() map[string]interface{}
SetData(name string, data interface{})
SetUser(user *ContextUser)
GetUser() *ContextUser
}
func NewContext(options *ContextOptions) IContext
type ICronjobContext interface {
IContext
Job() *gocron.Scheduler
Start()
AddJob(job *gocron.Scheduler, handlerFunc func(ctx ICronjobContext) error)
}
func NewCronjobContext(options *CronjobContextOptions) ICronjobContext
type IE2EContext interface {
IContext
}
func NewE2EContext(options *E2EContextOptions) IE2EContext
type IENV interface {
Config() *ENVConfig
IsDev() bool
IsTest() bool
IsMock() bool
IsProd() bool
Bool(key string) bool
Int(key string) int
String(key string) string
All() map[string]string
}
func NewENVPath(path string) IENV
func NewEnv() IENV
type IEmail interface {
SendHTML(from string, to []string, subject string, body string) IError
SendHTMLWithAttach(from string, to []string, subject string, body string, file []byte, fileName string) IError
SendText(from string, to []string, subject string, body string) IError
ParseHTMLToString(path string, data interface{}) (string, IError)
}
func NewEmail(ctx IContext) IEmail
type IError interface {
Error() string
GetCode() string
GetStatus() int
JSON() interface{}
OriginalError() error
GetMessage() interface{}
}
func DBErrorToIError(err error) IError
func MockIError(args mock.Arguments, index int) IError
func NewValidatorFields(fields interface{}) IError
func RequesterToStruct(desc interface{}, requester func() (*RequestResponse, error)) IError
type IFile interface {
Name() string
Value() []byte
}
func NewFile(name string, value []byte) IFile
type IHTTPContext interface {
IContext
echo.Context
BindWithValidate(ctx IValidateContext) IError
BindWithValidateMessage(ctx IValidateContext) IError
BindOnly(i interface{}) IError
GetSignature() string
GetMessage() string
GetPageOptions() *PageOptions
GetPageOptionsWithOptions(options *PageOptionsOptions) *PageOptions
GetUserAgent() *user_agent.UserAgent
WithSaveCache(data interface{}, key string, duration time.Duration) interface{}
}
func NewHTTPContext(ctx echo.Context, options *HTTPContextOptions) IHTTPContext
type ILogger interface {
Info(args ...interface{})
Warn(args ...interface{})
Debug(args ...interface{})
DebugWithSkip(skip int, args ...interface{})
Error(message error, args ...interface{})
ErrorWithSkip(skip int, message error, args ...interface{})
}
type IMQ interface {
Close()
PublishJSON(name string, data interface{}, options *MQPublishOptions) error
Consume(ctx IMQContext, name string, onConsume func(message amqp.Delivery), options *MQConsumeOptions)
Conn() *amqp.Connection
ReConnect()
}
type IMQContext interface {
IContext
AddConsumer(handlerFunc func(ctx IMQContext))
Consume(name string, onConsume func(message amqp.Delivery), options *MQConsumeOptions)
Start()
}
func NewMQContext(options *MQContextOptions) IMQContext
func NewMQServer(options *MQContextOptions) IMQContext
type IMongoDB interface {
DB() *mongo.Database
Create(coll string, document interface{}, opts ...*options.InsertOneOptions) (*mongo.InsertOneResult, error)
FindAggregate(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
FindAggregatePagination(dest interface{}, coll string, pipeline interface{}, pageOptions *PageOptions, opts ...*options.AggregateOptions) (*PageResponse, error)
FindAggregateOne(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
Find(dest interface{}, coll string, filter interface{}, opts ...*options.FindOptions) error
FindPagination(dest interface{}, coll string, filter interface{}, pageOptions *PageOptions, opts ...*options.FindOptions) (*PageResponse, error)
FindOne(dest interface{}, coll string, filter interface{}, opts ...*options.FindOneOptions) error
FindOneAndUpdate(dest interface{}, coll string, filter interface{}, update interface{}, opts ...*options.FindOneAndUpdateOptions) error
UpdateOne(coll string, filter interface{}, update interface{}, opts ...*options.UpdateOptions) (*mongo.UpdateResult, error)
Count(coll string, filter interface{}, opts ...*options.CountOptions) (int64, error)
Drop(coll string) error
DeleteOne(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
DeleteMany(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
FindOneAndDelete(coll string, filter interface{}, opts ...*options.FindOneAndDeleteOptions) error
Close()
Helper() IMongoDBHelper
CreateIndex(coll string, models []mongo.IndexModel, opts ...*options.CreateIndexesOptions) ([]string, error)
DropIndex(coll string, name string, opts ...*options.DropIndexesOptions) (*MongoDropIndexResult, error)
DropAll(coll string, opts ...*options.DropIndexesOptions) (*MongoDropIndexResult, error)
ListIndex(coll string, opts ...*options.ListIndexesOptions) ([]MongoListIndexResult, error)
}
type IMongoDBHelper interface {
Lookup(options *MongoLookupOptions) bson.M
Set(options bson.M) bson.M
Project(options bson.M) bson.M
Size(expression string) bson.M
Filter(options *MongoFilterOptions) bson.M
Match(options bson.M) bson.M
Unwind(field string) bson.M
ReplaceRoot(options interface{}) bson.M
Or(options []bson.M) bson.M
}
func NewMongoHelper() IMongoDBHelper
type IMongoIndexBatch interface {
Name() string
Run() error
}
type IMongoIndexer interface {
Add(batch IMongoIndexBatch)
Execute() error
}
func NewMongoIndexer(ctx IContext) IMongoIndexer
type IRequester interface {
Get(url string, options *RequesterOptions) (*RequestResponse, error)
Delete(url string, options *RequesterOptions) (*RequestResponse, error)
Post(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
Create(method RequesterMethodType, url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
Put(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
Patch(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
}
func NewRequester(ctx IContext) IRequester
type IS3 interface {
GetObject(path string, opts *ss3.GetObjectInput) (*ss3.GetObjectOutput, error)
PutObject(objectName string, file io.ReadSeeker, opts *ss3.PutObjectInput, uploadOptions *UploadOptions) (*ss3.PutObjectOutput, error)
PutObjectByURL(objectName string, url string, opts *ss3.PutObjectInput, uploadOptions *UploadOptions) (*ss3.PutObjectOutput, error)
}
type ISeed interface {
Run() error
}
type IValidMessage struct {
Name string `json:"-"`
Code string `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
}
func (f IValidMessage) Error() string
type IValidate interface {
Valid() IError
}
type IValidateContext interface {
Valid(ctx IContext) IError
}
type IWinRM interface {
Command(command string, isProduction bool) (*WinRMResult, IError)
}
func NewWinRM(ctx IContext) IWinRM
type KeywordCondition string
type KeywordConditionWrapper struct {
Condition KeywordCondition
KeywordOptions []KeywordOptions
}
func NewKeywordAndCondition(keywordOptions []KeywordOptions) *KeywordConditionWrapper
func NewKeywordOrCondition(keywordOptions []KeywordOptions) *KeywordConditionWrapper
type KeywordOptions struct {
Type KeywordType
Key string
Value string
}
func NewKeywordMustMatchOption(key string, value string) *KeywordOptions
func NewKeywordMustMatchOptions(keys []string, value string) []KeywordOptions
func NewKeywordWildCardOption(key string, value string) *KeywordOptions
func NewKeywordWildCardOptions(keys []string, value string) []KeywordOptions
type KeywordType string
Log is the logger utility with information of request context
type Logger struct {
RequestID string
HostName string
Type consts.ContextType
// contains filtered or unexported fields
}
func NewLogger(ctx IContext) *Logger
NewLogger will create the logger with context from echo context
func NewLoggerSimple() *Logger
NewLoggerSimple return plain text simple logger
func (logger *Logger) Debug(args ...interface{})
Debug log debug level
func (logger *Logger) DebugWithSkip(skip int, args ...interface{})
func (logger *Logger) Error(message error, args ...interface{})
Error log error level
func (logger *Logger) ErrorWithSkip(skip int, message error, args ...interface{})
Error log error level
func (logger *Logger) Info(args ...interface{})
Info log information level
func (logger *Logger) Warn(args ...interface{})
Warn log warnning level
type MQ struct {
Host string
User string
Password string
Port string
LogLevel logrus.Level
}
func NewMQ(env *ENVConfig) *MQ
func (m *MQ) Connect() (IMQ, error)
ConnectDB to connect Database
func (m *MQ) ReConnect() (*amqp.Connection, error)
ConnectDB to connect Database
type MQConsumeOptions struct {
Durable bool
AutoDelete bool
Exclusive bool
NoWait bool
Args amqp.Table
AutoAck bool
NoLocal bool
Consumer string
}
type MQContext struct {
IContext
}
func (c *MQContext) AddConsumer(handlerFunc func(ctx IMQContext))
func (c *MQContext) Consume(name string, onConsume func(message amqp.Delivery), options *MQConsumeOptions)
func (c *MQContext) Start()
type MQContextOptions struct {
ContextOptions *ContextOptions
}
type MQPublishOptions struct {
Exchange string
MessageID string
Durable bool
AutoDelete bool
Exclusive bool
Mandatory bool
Immediate bool
NoWait bool
DeliveryMode uint8
Args amqp.Table
}
type Map map[string]interface{}
type MockCache struct {
mock.Mock
}
func NewMockCache() *MockCache
func (m *MockCache) Close()
func (m *MockCache) Del(key string) error
func (m *MockCache) Get(dest interface{}, key string) error
func (m *MockCache) GetJSON(dest interface{}, key string) error
func (m *MockCache) Set(key string, value interface{}, expiration time.Duration) error
func (m *MockCache) SetJSON(key string, value interface{}, expiration time.Duration) error
type MockDatabase struct {
Gorm *gorm.DB
Mock sqlmock.Sqlmock
}
func NewMockDatabase() *MockDatabase
type MockLogger struct {
mock.Mock
}
func NewMockLogger() *MockLogger
func (m *MockLogger) Debug(args ...interface{})
func (m *MockLogger) Error(message error, args ...interface{})
func (m *MockLogger) Info(args ...interface{})
func (m *MockLogger) Warn(args ...interface{})
type MockMQ struct {
mock.Mock
}
func NewMockMQ() *MockMQ
func (m *MockMQ) Close()
func (m *MockMQ) Conn() *amqp.Connection
func (m *MockMQ) Consume(name string, onConsume func(message amqp.Delivery), options *MQConsumeOptions) error
func (m *MockMQ) PublishJSON(name string, data interface{}, options *MQPublishOptions) error
type MockMiddlewareManual func(c IHTTPContext) error
type MockMiddlewareOptions struct {
Wrapper MockMiddlewareWrapper
Manual MockMiddlewareManual
IsPagination bool
IsDisabled bool
}
type MockMiddlewareWrapper func(model interface{}) interface{}
type MockMongoDB struct {
mock.Mock
}
func NewMockMongoDB() *MockMongoDB
func (m *MockMongoDB) Close()
func (m *MockMongoDB) Count(coll string, filter interface{}, opts ...*options.CountOptions) (int64, error)
func (m *MockMongoDB) Create(coll string, document interface{}, opts ...*options.InsertOneOptions) (*mongo.InsertOneResult, error)
func (m *MockMongoDB) DB() *mongo.Database
func (m *MockMongoDB) DeleteMany(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
func (m *MockMongoDB) DeleteOne(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
func (m *MockMongoDB) Drop(coll string) error
func (m *MockMongoDB) Find(dest interface{}, coll string, filter interface{}, opts ...*options.FindOptions) error
func (m *MockMongoDB) FindAggregate(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
func (m *MockMongoDB) FindAggregateOne(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
func (m *MockMongoDB) FindAggregatePagination(dest interface{}, coll string, pipeline interface{}, pageOptions *PageOptions, opts ...*options.AggregateOptions) (*PageResponse, error)
func (m *MockMongoDB) FindOne(dest interface{}, coll string, filter interface{}, opts ...*options.FindOneOptions) error
func (m *MockMongoDB) FindOneAndDelete(coll string, filter interface{}, opts ...*options.FindOneAndDeleteOptions) error
func (m *MockMongoDB) FindOneAndUpdate(dest interface{}, coll string, filter interface{}, update interface{}, opts ...*options.FindOneAndUpdateOptions) error
func (m *MockMongoDB) FindPagination(dest interface{}, coll string, filter interface{}, pageOptions *PageOptions, opts ...*options.FindOptions) (*PageResponse, error)
func (m *MockMongoDB) Helper() IMongoDBHelper
func (m *MockMongoDB) UpdateOne(coll string, filter interface{}, update interface{}, opts ...*options.UpdateOptions) (*mongo.UpdateResult, error)
type MockMongoIndexBatch struct {
mock.Mock
}
func NewMockMongoIndexBatch() *MockMongoIndexBatch
func (m *MockMongoIndexBatch) Name() string
func (m *MockMongoIndexBatch) Run() error
type MockMongoIndexer struct {
mock.Mock
Batches []*MockMongoIndexBatch
}
func NewMockMongoIndexer() *MockMongoIndexer
func (m *MockMongoIndexer) Add(batch *MockMongoIndexBatch)
func (m *MockMongoIndexer) Execute() error
type MockRequester struct {
mock.Mock
}
func NewMockRequester() *MockRequester
func (m *MockRequester) Delete(url string, options *RequesterOptions) (*RequestResponse, error)
func (m *MockRequester) Get(url string, options *RequesterOptions) (*RequestResponse, error)
func (m *MockRequester) Patch(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (m *MockRequester) Post(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (m *MockRequester) Put(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
type MongoDB struct {
// contains filtered or unexported fields
}
func (m MongoDB) Close()
func (m MongoDB) Count(coll string, filter interface{}, opts ...*options.CountOptions) (int64, error)
func (m MongoDB) Create(coll string, document interface{}, opts ...*options.InsertOneOptions) (*mongo.InsertOneResult, error)
func (m MongoDB) CreateIndex(coll string, models []mongo.IndexModel, opts ...*options.CreateIndexesOptions) ([]string, error)
func (m MongoDB) DB() *mongo.Database
func (m MongoDB) DeleteMany(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
func (m MongoDB) DeleteOne(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
func (m MongoDB) Drop(coll string) error
func (m MongoDB) DropAll(coll string, opts ...*options.DropIndexesOptions) (*MongoDropIndexResult, error)
func (m MongoDB) DropIndex(coll string, name string, opts ...*options.DropIndexesOptions) (*MongoDropIndexResult, error)
func (m MongoDB) Find(dest interface{}, coll string, filter interface{}, opts ...*options.FindOptions) error
func (m MongoDB) FindAggregate(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
func (m MongoDB) FindAggregateOne(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
func (m MongoDB) FindAggregatePagination(dest interface{}, coll string, pipeline interface{}, pageOptions *PageOptions, opts ...*options.AggregateOptions) (*PageResponse, error)
func (m MongoDB) FindOne(dest interface{}, coll string, filter interface{}, opts ...*options.FindOneOptions) error
func (m MongoDB) FindOneAndDelete(coll string, filter interface{}, opts ...*options.FindOneAndDeleteOptions) error
func (m MongoDB) FindOneAndUpdate(dest interface{}, coll string, filter interface{}, update interface{}, opts ...*options.FindOneAndUpdateOptions) error
func (m MongoDB) FindPagination(dest interface{}, coll string, filter interface{}, pageOptions *PageOptions, opts ...*options.FindOptions) (*PageResponse, error)
func (m MongoDB) Helper() IMongoDBHelper
func (m MongoDB) ListIndex(coll string, opts ...*options.ListIndexesOptions) ([]MongoListIndexResult, error)
func (m MongoDB) UpdateOne(coll string, filter interface{}, update interface{}, opts ...*options.UpdateOptions) (*mongo.UpdateResult, error)
type MongoDropIndexResult struct {
DropCount int64 `json:"drop_count" bson:"nIndexesWas"`
}
type MongoFilterOptions struct {
Input string
As string
Condition bson.M
}
type MongoIndexer struct {
Batches []IMongoIndexBatch
// contains filtered or unexported fields
}
func (i *MongoIndexer) Add(batch IMongoIndexBatch)
func (i *MongoIndexer) Execute() error
type MongoListIndexResult struct {
Key map[string]int64 `json:"key" bson:"key"`
Name string `json:"name" bson:"name"`
Version int64 `json:"version" bson:"v"`
}
type MongoLookupOptions struct {
From string
LocalField string
ForeignField string
As string
}
type PageOptions struct {
Q string
Limit int64
Page int64
OrderBy []string
}
func (p *PageOptions) SetOrderDefault(orders ...string)
type PageOptionsOptions struct {
OrderByAllowed []string
}
type PageResponse struct {
Total int64
Limit int64
Count int64
Page int64
Q string
OrderBy []string
}
func Paginate(db *gorm.DB, model interface{}, options *PageOptions) (*PageResponse, error)
type Pagination struct {
Page int64 `json:"page" example:"1"`
Total int64 `json:"total" example:"45"`
Limit int64 `json:"limit" example:"30"`
Count int64 `json:"count" example:"30"`
Items interface{} `json:"items"`
}
func NewPagination(items interface{}, options *PageResponse) *Pagination
type RequestResponse struct {
Data map[string]interface{}
RawData []byte
ErrorCode string
StatusCode int
Header http.Header
ContentLength int64
TransferEncoding []string
Uncompressed bool
Trailer http.Header
Request *http.Request
TLS *tls.ConnectionState
}
func RequestWrapper(dest interface{}, requester func() (*RequestResponse, error)) (*RequestResponse, error)
Deprecated: RequestWrapper is deprecated, use RequestToStruct or RequestToStructPagination instead.
type Requester struct {
// contains filtered or unexported fields
}
func (r Requester) Create(method RequesterMethodType, url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (r Requester) Delete(url string, options *RequesterOptions) (*RequestResponse, error)
func (r Requester) Get(url string, options *RequesterOptions) (*RequestResponse, error)
func (r Requester) Patch(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (r Requester) Post(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (r Requester) Put(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
type RequesterMethodType string
const (
RequesterMethodTypeGET RequesterMethodType = http.MethodGet
RequesterMethodTypeHEAD RequesterMethodType = http.MethodHead
RequesterMethodTypePOST RequesterMethodType = http.MethodPost
RequesterMethodTypePUT RequesterMethodType = http.MethodPut
RequesterMethodTypePATCH RequesterMethodType = http.MethodPatch
RequesterMethodTypeDELETE RequesterMethodType = http.MethodDelete
RequesterMethodTypeOPTIONS RequesterMethodType = http.MethodOptions
RequesterMethodTypeTRACE RequesterMethodType = http.MethodTrace
)
type RequesterOptions struct {
BaseURL string
Timeout *time.Duration
Headers http.Header
Params xurl.Values
RetryCount int
IsMultipartForm bool
IsURLEncode bool
IsBodyRawByte bool
}
type S3Config struct {
Endpoint string
AccessKey string
SecretKey string
Bucket string
Region string
IsHTTPS bool
}
func NewS3(env *ENVConfig) *S3Config
func (r *S3Config) Connect() (IS3, error)
type Seeder struct {
}
func NewSeeder() *Seeder
func (receiver Seeder) Add(seeder ISeed) error
type UploadOptions struct {
Width int64
Height int64
Quality int64
}
Validator type
type Valid struct {
// contains filtered or unexported fields
}
func NewValid() *Valid
New creates new validator
func (v *Valid) Add(err ...error)
Add adds errors
func (v *Valid) Error() string
Error returns error if has error
func (v *Valid) GetCode() string
func (v *Valid) GetMessage() interface{}
func (v *Valid) GetStatus() int
func (v *Valid) JSON() interface{}
func (v *Valid) Must(x bool, msg *IValidMessage) bool
Must checks x must not an error or true if bool and return true if valid
msg must be error or string
func (v *Valid) OriginalError() error
func (v *Valid) OriginalErrorMessage() string
func (v *Valid) Valid() IError
Valid returns true if no error
Error is the validate error
type ValidError struct {
// contains filtered or unexported fields
}
func (err *ValidError) Error() string
Error implements error interface
func (err *ValidError) Errors() []error
Errors returns errors
func (err *ValidError) Strings() []string
Strings returns errors in strings
type Validator struct{}
func (cv *Validator) Validate(i interface{}) error
type WinRM struct {
// contains filtered or unexported fields
}
func (w *WinRM) Command(command string, isProduction bool) (*WinRMResult, IError)
type WinRMResult struct {
Result string `json:"result"`
}