Documentation
¶
Index ¶
- Constants
- Variables
- 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 CreateLoggerMiddleware(next echo.HandlerFunc) echo.HandlerFunc
- func ErrorToJson(err error) (m map[string]jsonErr)
- func Fake(a interface{}) error
- func GetBodyString(c echo.Context) []byte
- func HTTPWithCache(key func(IHTTPContext) string) echo.MiddlewareFunc
- func HandleError(err error, c echo.Context)
- func HandleNotFound(c echo.Context) error
- func IsError(err error) bool
- 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 RecoverWithConfig(env IENV, config middleware.RecoverConfig) echo.MiddlewareFunc
- func RequesterToStructPagination(items interface{}, options *PageOptions, ...) (*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 BaseValidator
- 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, ...) (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
- 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) ELS() IELS
- func (m *ContextMock) ENV() IENV
- func (m *ContextMock) Log() ILogger
- 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
- type ContextUser
- type CronjobContext
- type CronjobContextOptions
- type Database
- type DatabaseCache
- type DatabaseMongo
- type E2EContext
- type E2EContextOptions
- type ELS
- type ELSCreateCreateOptions
- type ELSCreateIndexOptions
- type ELSCreateSearchOptions
- type ELSMigration
- type ELSUpdateOptions
- type ENVConfig
- type ENVType
- 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
- func (e ENVType) IsMock() bool
- func (e ENVType) IsProd() bool
- func (e ENVType) IsTest() bool
- func (e ENVType) String(key string) string
- type Error
- type FieldError
- type File
- type HTTPContext
- func (c *HTTPContext) BindOnly(i interface{}) IError
- func (c *HTTPContext) BindWithValidate(ctx IValidateContext) IError
- func (c *HTTPContext) GetPageOptions() *PageOptions
- func (c *HTTPContext) GetPageOptionsWithOptions(options *PageOptionsOptions) *PageOptions
- 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
- type HandlerFunc
- type ICache
- type IContext
- type ICronjobContext
- type IE2EContext
- type IELS
- type IELSMigration
- type IENV
- type IError
- type IFile
- type IHTTPContext
- type ILogger
- type IMQ
- type IMQContext
- type IMongoDB
- type IMongoDBHelper
- type IMongoIndexBatch
- type IMongoIndexer
- type IRequester
- type IS3
- type ISeed
- type IValidMessage
- type IValidate
- type IValidateContext
- type KeywordCondition
- type KeywordConditionWrapper
- type KeywordOptions
- type KeywordType
- type Logger
- func (logger *Logger) Debug(args ...interface{})
- func (logger *Logger) DebugWithSkip(skip int, args ...interface{})
- func (logger *Logger) Error(message error, args ...interface{})
- func (logger *Logger) ErrorWithSkip(skip int, message error, args ...interface{})
- func (logger *Logger) Info(args ...interface{})
- func (logger *Logger) Warn(args ...interface{})
- type MQ
- type MQConsumeOptions
- type MQContext
- type MQContextOptions
- type MQPublishOptions
- type Map
- type 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
- type MockLogger
- type MockMQ
- type MockMiddlewareManual
- type MockMiddlewareOptions
- type MockMiddlewareWrapper
- type 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{}, ...) error
- func (m *MockMongoDB) FindAggregate(dest interface{}, coll string, pipeline interface{}, ...) error
- func (m *MockMongoDB) FindAggregateOne(dest interface{}, coll string, pipeline interface{}, ...) error
- func (m *MockMongoDB) FindAggregatePagination(dest interface{}, coll string, pipeline interface{}, pageOptions *PageOptions, ...) (*PageResponse, error)
- func (m *MockMongoDB) FindOne(dest interface{}, coll string, filter interface{}, ...) 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{}, ...) error
- func (m *MockMongoDB) FindPagination(dest interface{}, coll string, filter interface{}, pageOptions *PageOptions, ...) (*PageResponse, error)
- func (m *MockMongoDB) Helper() IMongoDBHelper
- func (m *MockMongoDB) UpdateOne(coll string, filter interface{}, update interface{}, ...) (*mongo.UpdateResult, error)
- type MockMongoIndexBatch
- type MockMongoIndexer
- type 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
- 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{}, ...) error
- func (m MongoDB) FindAggregate(dest interface{}, coll string, pipeline interface{}, ...) error
- func (m MongoDB) FindAggregateOne(dest interface{}, coll string, pipeline interface{}, ...) error
- func (m MongoDB) FindAggregatePagination(dest interface{}, coll string, pipeline interface{}, pageOptions *PageOptions, ...) (*PageResponse, error)
- func (m MongoDB) FindAggregatePaginationCustomTotal(dest interface{}, coll string, pipeline []bson.M, pipelineTotalCount []bson.M, ...) (*PageResponse, error)
- func (m MongoDB) FindOne(dest interface{}, coll string, filter interface{}, ...) 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{}, ...) error
- func (m MongoDB) FindPagination(dest interface{}, coll string, filter interface{}, pageOptions *PageOptions, ...) (*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{}, ...) (*mongo.UpdateResult, error)
- type MongoDropIndexResult
- type MongoFilterOptions
- type MongoIndexer
- type MongoListIndexResult
- type MongoLookupOptions
- type PageOptions
- type PageOptionsOptions
- type PageResponse
- type Pagination
- type RequestResponse
- type Requester
- func (r Requester) Create(method RequesterMethodType, url string, body interface{}, ...) (*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
- type RequesterOptions
- type S3Config
- type Seeder
- type UploadOptions
- type Valid
- func (v *Valid) Add(err ...error)
- func (v *Valid) Error() string
- 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
- func (v *Valid) OriginalError() error
- func (v *Valid) OriginalErrorMessage() string
- func (v *Valid) Valid() IError
- type ValidError
- type Validator
Constants ¶
View Source
const ( MustMatch KeywordType = "must_match" Wildcard KeywordType = "wildcard" And KeywordCondition = "and" Or KeywordCondition = "or" )
View Source
const ( DatabaseDriverPOSTGRES = "postgres" DatabaseDriverMSSQL = "mssql" DatabaseDriverMYSQL = "mysql" )
View Source
const DateFormat = "2006-01-02 15:04:05"
View Source
const EnvFileName = ".env"
View Source
const EnvTestFileName = "env_test"
View Source
const TimeFormat = "15:04:05"
View Source
const TimeFormatRegex = "^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$"
Variables ¶
View Source
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, }, } }
View Source
var ArrayM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_ARRAY", Message: "The " + field + " field must be array format", } }
View Source
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, } }
View Source
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, } }
View Source
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, } }
View Source
var Base64M = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "BASE64", Message: "The " + field + " must be base64 format", } }
View Source
var BooleanM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TYPE", Message: "The " + field + " field must be boolean", } }
View Source
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), } }
View Source
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), } }
View Source
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`, } }
View Source
var EmailM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_EMAIL", Message: fmt.Sprintf("The %v field must be Email Address", field), } }
View Source
var ExistsM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "NOT_EXISTS", Message: "The " + field + " field's value is not exists", } }
View Source
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), } }
View Source
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, } }
View Source
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, } }
View Source
var IPM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_IP", Message: fmt.Sprintf("The %v field must be IP Address", field), } }
View Source
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, } }
View Source
var JSONArrayM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_JSON_ARRAY", Message: "The " + field + " field must be array format", } }
View Source
var JSONM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_JSON", Message: "The " + field + " field must be json", } }
View Source
var JSONObjectEmptyM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_JSON", Message: "The " + field + " field cannot be empty object", } }
View Source
var JSONObjectM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_JSON", Message: "The " + field + " field must be json object", } }
View Source
var MQError = Error{ Status: http.StatusInternalServerError, Code: "MQ_ERROR", Message: "mq internal error"}
View Source
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), } }
View Source
var NumberM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TYPE", Message: "The " + field + " field cannot parse to number", } }
View Source
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, } }
View Source
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, } }
View Source
var ObjectEmptyM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TYPE", Message: "The " + field + " field cannot be empty object", } }
View Source
var RequiredM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "REQUIRED", Message: "The " + field + " field is required", } }
View Source
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, } }
View Source
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, } }
View Source
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, } }
View Source
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, } }
View Source
var StringLowercaseM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_LOWERCASE", Message: fmt.Sprintf("The %v field must be lowercase", field), } }
View Source
var StringM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TYPE", Message: "The " + field + " field must be string", } }
View Source
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, } }
View Source
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, } }
View Source
var StringUppercaseM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_STRING_UPPERCASE", Message: fmt.Sprintf("The %v field must be uppercase", field), } }
View Source
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), } }
View Source
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), } }
View Source
var TimeM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_TIME", Message: "The " + field + ` field must be in "HH:mm:ss"" format`, } }
View Source
var URLM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "INVALID_URL", Message: "The " + field + " field is not url", } }
View Source
var UniqueM = func(field string) *IValidMessage { return &IValidMessage{ Name: field, Code: "UNIQUE", Message: "The " + field + " field's value already exists", } }
Functions ¶
func CaptureError ¶
func CaptureHTTPError ¶
func CaptureHTTPError(ctx IHTTPContext, level sentry.Level, err error, args ...interface{})
func CaptureSimpleError ¶
func Core ¶
func Core(options *HTTPContextOptions) func(next echo.HandlerFunc) echo.HandlerFunc
func CreateLoggerMiddleware ¶
func CreateLoggerMiddleware(next echo.HandlerFunc) echo.HandlerFunc
func ErrorToJson ¶
func GetBodyString ¶
func HTTPWithCache ¶
func HTTPWithCache(key func(IHTTPContext) string) echo.MiddlewareFunc
func HandleError ¶
func HandleNotFound ¶
func MockMiddleware ¶
func MockMiddleware(model interface{}, options *MockMiddlewareOptions) func(next echo.HandlerFunc) echo.HandlerFunc
func NewHTTPServer ¶
func NewHTTPServer(options *HTTPContextOptions) *echo.Echo
func NewMockENV ¶
func NewMockENV() *mockENV
func RecoverWithConfig ¶
func RecoverWithConfig(env IENV, config middleware.RecoverConfig) echo.MiddlewareFunc
func RequesterToStructPagination ¶
func RequesterToStructPagination(items interface{}, options *PageOptions, requester func() (*RequestResponse, error)) (*PageResponse, IError)
func StartHTTPServer ¶
func WithHTTPContext ¶
func WithHTTPContext(h HandlerFunc) echo.HandlerFunc
Types ¶
type BaseValidator ¶
type BaseValidator struct {
// contains filtered or unexported fields
}
func (*BaseValidator) AddValidator ¶
func (b *BaseValidator) AddValidator(errs ...*Valid)
func (*BaseValidator) Error ¶
func (b *BaseValidator) Error() IError
func (*BaseValidator) GetValidator ¶
func (b *BaseValidator) GetValidator() *Valid
func (*BaseValidator) IsArrayBetween ¶
func (b *BaseValidator) IsArrayBetween(array interface{}, min int, max int, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsArrayMax ¶
func (b *BaseValidator) IsArrayMax(array interface{}, size int, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsArrayMin ¶
func (b *BaseValidator) IsArrayMin(array interface{}, size int, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsArraySize ¶
func (b *BaseValidator) IsArraySize(array interface{}, size int, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsBase64 ¶
func (b *BaseValidator) IsBase64(field *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsBoolRequired ¶
func (b *BaseValidator) IsBoolRequired(value interface{}, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsCustom ¶
func (b *BaseValidator) IsCustom(customFunc func() (bool, *IValidMessage)) (bool, *IValidMessage)
func (*BaseValidator) IsDateTime ¶
func (b *BaseValidator) IsDateTime(input *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsDateTimeAfter ¶
func (b *BaseValidator) IsDateTimeAfter(input *string, after *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsDateTimeBefore ¶
func (b *BaseValidator) IsDateTimeBefore(input *string, before *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsEmail ¶
func (b *BaseValidator) IsEmail(field *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsExists ¶
func (b *BaseValidator) IsExists(ctx IContext, field *string, table string, column string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsExistsWithCondition ¶
func (b *BaseValidator) IsExistsWithCondition( ctx IContext, table string, condition map[string]interface{}, fieldPath string, ) (bool, *IValidMessage)
func (*BaseValidator) IsFloatNumberBetween ¶
func (b *BaseValidator) IsFloatNumberBetween(field *float64, min float64, max float64, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsFloatNumberMax ¶
func (b *BaseValidator) IsFloatNumberMax(field *float64, max float64, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsFloatNumberMin ¶
func (b *BaseValidator) IsFloatNumberMin(field *float64, min float64, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsIP ¶
func (b *BaseValidator) IsIP(field *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONArray ¶
func (b *BaseValidator) IsJSONArray(field *json.RawMessage, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONArrayMax ¶
func (b *BaseValidator) IsJSONArrayMax(field *json.RawMessage, max int, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONArrayMin ¶
func (b *BaseValidator) IsJSONArrayMin(field *json.RawMessage, min int, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONBoolPathRequired ¶
func (b *BaseValidator) IsJSONBoolPathRequired(json *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONObject ¶
func (b *BaseValidator) IsJSONObject(field *json.RawMessage, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONObjectNotEmpty ¶
func (b *BaseValidator) IsJSONObjectNotEmpty(field *json.RawMessage, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONObjectPath ¶
func (b *BaseValidator) IsJSONObjectPath(j *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONPathRequireNotEmpty ¶
func (b *BaseValidator) IsJSONPathRequireNotEmpty(j *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONPathRequired ¶
func (b *BaseValidator) IsJSONPathRequired(j *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONPathStrIn ¶
func (b *BaseValidator) IsJSONPathStrIn(json *json.RawMessage, path string, rules string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONRequired ¶
func (b *BaseValidator) IsJSONRequired(field *json.RawMessage, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsJSONStrPathRequired ¶
func (b *BaseValidator) IsJSONStrPathRequired(json *json.RawMessage, path string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsMongoExistsWithCondition ¶
func (b *BaseValidator) IsMongoExistsWithCondition( ctx IContext, table string, filter interface{}, fieldPath string, ) (bool, *IValidMessage)
func (*BaseValidator) IsMongoStrUnique ¶
func (b *BaseValidator) IsMongoStrUnique(ctx IContext, table string, filter interface{}, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsNotEmptyObjectRequired ¶
func (b *BaseValidator) IsNotEmptyObjectRequired(value interface{}, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsNumberBetween ¶
func (b *BaseValidator) IsNumberBetween(field *int64, min int64, max int64, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsNumberMax ¶
func (b *BaseValidator) IsNumberMax(field *int64, max int64, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsNumberMin ¶
func (b *BaseValidator) IsNumberMin(field *int64, min int64, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsRequired ¶
func (b *BaseValidator) IsRequired(field interface{}, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsRequiredArray ¶
func (b *BaseValidator) IsRequiredArray(array interface{}, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStrIn ¶
func (b *BaseValidator) IsStrIn(input *string, rules string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStrMax ¶
func (b *BaseValidator) IsStrMax(input *string, size int, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStrMin ¶
func (b *BaseValidator) IsStrMin(input *string, size int, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStrRequired ¶
func (b *BaseValidator) IsStrRequired(field *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStrUnique ¶
func (b *BaseValidator) IsStrUnique(ctx IContext, field *string, table string, column string, except string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStringContain ¶
func (b *BaseValidator) IsStringContain(field *string, substr string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStringEndWith ¶
func (b *BaseValidator) IsStringEndWith(field *string, substr string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStringLowercase ¶
func (b *BaseValidator) IsStringLowercase(field *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStringNotContain ¶
func (b *BaseValidator) IsStringNotContain(field *string, substr string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStringNumber ¶
func (b *BaseValidator) IsStringNumber(field *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStringNumberMin ¶
func (b *BaseValidator) IsStringNumberMin(field *string, min int64, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStringStartWith ¶
func (b *BaseValidator) IsStringStartWith(field *string, substr string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsStringUppercase ¶
func (b *BaseValidator) IsStringUppercase(field *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsTime ¶
func (b *BaseValidator) IsTime(input *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsTimeAfter ¶
func (b *BaseValidator) IsTimeAfter(input *string, after *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsTimeBefore ¶
func (b *BaseValidator) IsTimeBefore(input *string, before *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsTimeRequired ¶
func (b *BaseValidator) IsTimeRequired(field *time.Time, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) IsURL ¶
func (b *BaseValidator) IsURL(field *string, fieldPath string) (bool, *IValidMessage)
func (*BaseValidator) LoopJSONArray ¶
func (b *BaseValidator) LoopJSONArray(j *json.RawMessage) []interface{}
func (*BaseValidator) Merge ¶
func (b *BaseValidator) Merge(errs ...*Valid) IError
func (*BaseValidator) Must ¶
func (b *BaseValidator) Must(condition bool, msg *IValidMessage) bool
func (*BaseValidator) SetPrefix ¶
func (b *BaseValidator) SetPrefix(prefix string)
type ContextMock ¶
type ContextMock struct {
mock.Mock
MockRequester *MockRequester
MockCache *MockCache
MockMQ *MockMQ
MockLog *MockLogger
MockDBMongo *MockMongoDB
MockDB *MockDatabase
}
func NewMockContext ¶
func NewMockContext() *ContextMock
func (*ContextMock) Cache ¶
func (m *ContextMock) Cache() ICache
func (*ContextMock) Caches ¶
func (m *ContextMock) Caches(name string) ICache
func (*ContextMock) DB ¶
func (m *ContextMock) DB() *gorm.DB
func (*ContextMock) DBMongo ¶
func (m *ContextMock) DBMongo() IMongoDB
func (*ContextMock) DBSMongo ¶
func (m *ContextMock) DBSMongo(name string) IMongoDB
func (*ContextMock) ELS ¶
func (m *ContextMock) ELS() IELS
func (*ContextMock) ENV ¶
func (m *ContextMock) ENV() IENV
func (*ContextMock) MQ ¶
func (m *ContextMock) MQ() IMQ
func (*ContextMock) NewError ¶
func (m *ContextMock) NewError(err error, errorType IError, args ...interface{}) IError
func (*ContextMock) Requester ¶
func (m *ContextMock) Requester() IRequester
func (*ContextMock) SetType ¶
func (m *ContextMock) SetType(t consts.ContextType)
func (*ContextMock) Type ¶
func (m *ContextMock) Type() string
type ContextOptions ¶
type ContextUser ¶
type CronjobContext ¶
type CronjobContext struct {
IContext
// contains filtered or unexported fields
}
func (CronjobContext) AddJob ¶
func (c CronjobContext) AddJob(job *gocron.Scheduler, handlerFunc func(ctx ICronjobContext) error)
func (CronjobContext) Job ¶
func (c CronjobContext) Job() *gocron.Scheduler
func (CronjobContext) Start ¶
func (c CronjobContext) Start()
type CronjobContextOptions ¶
type CronjobContextOptions struct {
ContextOptions *ContextOptions
TimeLocation *time.Location
}
type Database ¶
type Database struct {
Driver string
DSN string
Name string
Host string
User string
Password string
Port string
// contains filtered or unexported fields
}
func NewDatabase ¶
func NewDatabaseWithConfig ¶
type DatabaseCache ¶
func NewCache ¶
func NewCache(env *ENVConfig) *DatabaseCache
func (DatabaseCache) Connect ¶
func (r DatabaseCache) Connect() (ICache, error)
type DatabaseMongo ¶
func NewDatabaseMongo ¶
func NewDatabaseMongo(env *ENVConfig) *DatabaseMongo
func (*DatabaseMongo) Connect ¶
func (db *DatabaseMongo) Connect() (IMongoDB, error)
Connect to connect Database
type E2EContext ¶
type E2EContext struct {
IContext
}
type E2EContextOptions ¶
type E2EContextOptions struct {
ContextOptions *ContextOptions
}
type ELSCreateCreateOptions ¶
type ELSCreateCreateOptions struct {
}
type ELSCreateIndexOptions ¶
type ELSCreateIndexOptions struct {
}
type ELSCreateSearchOptions ¶
type ELSCreateSearchOptions struct {
}
type ELSMigration ¶
type ELSMigration struct {
// contains filtered or unexported fields
}
func NewELSMigration ¶
func NewELSMigration(options *ContextOptions) *ELSMigration
func (ELSMigration) Add ¶
func (e ELSMigration) Add(f func(ctx IContext) IELSMigration)
type ELSUpdateOptions ¶
type ELSUpdateOptions struct {
}
type ENVConfig ¶
type ENVConfig struct {
LogLevel logrus.Level
LogHost string `mapstructure:"log_host"`
Host string `mapstructure:"host"`
ENV string `mapstructure:"env"`
Service string `mapstructure:"service"`
SentryDSN string `mapstructure:"sentry_dsn"`
DBDriver string `mapstructure:"db_driver"`
DBDsn string `mapstructure:"db_dsn"`
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"`
MQURI string `mapstructure:"mq_uri"`
MQHost string `mapstructure:"mq_host"`
MQUser string `mapstructure:"mq_user"`
MQPassword string `mapstructure:"mq_password"`
MQPort string `mapstructure:"mq_port"`
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"`
CachePort string `mapstructure:"cache_port"`
CacheHost string `mapstructure:"cache_host"`
ELSAddress string `mapstructure:"els_address"`
ELSUser string `mapstructure:"els_user"`
ELSPassword string `mapstructure:"els_password"`
}
type Error ¶
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 (Error) GetMessage ¶
func (c Error) GetMessage() interface{}
func (Error) OriginalError ¶
type FieldError ¶
type FieldError struct {
Code string `json:"code"`
Message string `json:"message"`
Fields interface{} `json:"fields,omitempty"`
}
func (FieldError) Error ¶
func (f FieldError) Error() string
func (FieldError) GetCode ¶
func (f FieldError) GetCode() string
func (FieldError) GetMessage ¶
func (f FieldError) GetMessage() interface{}
func (FieldError) GetStatus ¶
func (FieldError) GetStatus() int
func (FieldError) JSON ¶
func (f FieldError) JSON() interface{}
func (FieldError) OriginalError ¶
func (f FieldError) OriginalError() error
func (FieldError) OriginalErrorMessage ¶
func (f FieldError) OriginalErrorMessage() string
type HTTPContext ¶
func (*HTTPContext) BindOnly ¶
func (c *HTTPContext) BindOnly(i interface{}) IError
func (*HTTPContext) BindWithValidate ¶
func (c *HTTPContext) BindWithValidate(ctx IValidateContext) IError
func (*HTTPContext) GetPageOptions ¶
func (c *HTTPContext) GetPageOptions() *PageOptions
func (*HTTPContext) GetPageOptionsWithOptions ¶
func (c *HTTPContext) GetPageOptionsWithOptions(options *PageOptionsOptions) *PageOptions
func (HTTPContext) GetUserAgent ¶
func (c HTTPContext) GetUserAgent() *user_agent.UserAgent
func (*HTTPContext) Log ¶
func (c *HTTPContext) Log() ILogger
func (*HTTPContext) NewError ¶
func (c *HTTPContext) NewError(err error, errorType IError, args ...interface{}) IError
func (*HTTPContext) WithSaveCache ¶
func (c *HTTPContext) WithSaveCache(data interface{}, key string, duration time.Duration) interface{}
type HTTPContextOptions ¶
type HTTPContextOptions struct {
ContextOptions *ContextOptions
}
type HandlerFunc ¶
type HandlerFunc func(IHTTPContext) error
type IContext ¶
type IContext interface {
MQ() IMQ
DB() *gorm.DB
DBS(name string) *gorm.DB
DBMongo() IMongoDB
DBSMongo(name string) IMongoDB
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 ¶
func NewContext(options *ContextOptions) IContext
type ICronjobContext ¶
type ICronjobContext interface {
IContext
Job() *gocron.Scheduler
Start()
AddJob(job *gocron.Scheduler, handlerFunc func(ctx ICronjobContext) error)
}
func NewCronjobContext ¶
func NewCronjobContext(options *CronjobContextOptions) ICronjobContext
type IE2EContext ¶
type IE2EContext interface {
IContext
}
func NewE2EContext ¶
func NewE2EContext(options *E2EContextOptions) IE2EContext
type IELS ¶
type IELS interface {
Client() *elasticsearch.Client
CreateIndex(name string, body map[string]interface{}, options *ELSCreateIndexOptions) error
Create(dest interface{}, index string, id string, body interface{}, options *ELSCreateIndexOptions) (*esapi.Response, error)
CreateOrUpdate(dest interface{}, index string, id string, body interface{}, options *ELSUpdateOptions) (*esapi.Response, error)
Update(dest interface{}, index string, id string, body interface{}, options *ELSUpdateOptions) (*esapi.Response, error)
SearchPagination(dest interface{}, index string, body map[string]interface{}, pageOptions *PageOptions, opts *ELSCreateSearchOptions) (*PageResponse, error)
}
type IELSMigration ¶
type IELSMigration interface {
Up() error
}
type IENV ¶
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 ¶
type IError ¶
type IError interface {
Error() string
GetCode() string
GetStatus() int
JSON() interface{}
OriginalError() error
GetMessage() interface{}
}
func DBErrorToIError ¶
func NewValidatorFields ¶
func NewValidatorFields(fields interface{}) IError
func RequesterToStruct ¶
func RequesterToStruct(desc interface{}, requester func() (*RequestResponse, error)) IError
type IHTTPContext ¶
type IHTTPContext interface {
IContext
echo.Context
BindWithValidate(ctx IValidateContext) IError
BindOnly(i interface{}) IError
GetPageOptions() *PageOptions
GetPageOptionsWithOptions(options *PageOptionsOptions) *PageOptions
GetUserAgent() *user_agent.UserAgent
WithSaveCache(data interface{}, key string, duration time.Duration) interface{}
}
func NewHTTPContext ¶
func NewHTTPContext(ctx echo.Context, options *HTTPContextOptions) IHTTPContext
type IMQ ¶
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 ¶
type IMQContext interface {
IContext
AddConsumer(handlerFunc func(ctx IMQContext))
Consume(name string, onConsume func(message amqp.Delivery), options *MQConsumeOptions)
Start()
}
func NewMQContext ¶
func NewMQContext(options *MQContextOptions) IMQContext
func NewMQServer ¶
func NewMQServer(options *MQContextOptions) IMQContext
type IMongoDB ¶
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)
FindAggregatePaginationCustomTotal(dest interface{}, coll string, pipeline []bson.M, pipelineTotalCount []bson.M, pageOptions *PageOptions, opts ...*options.AggregateOptions) (*PageResponse, error)
}
type IMongoDBHelper ¶
type IMongoDBHelper interface {
Lookup(options *MongoLookupOptions) bson.M
Set(options bson.M) bson.M
Sort(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
PushOne(options bson.M) bson.M
Push(options []bson.M) bson.M
PullOne(options bson.M) bson.M
Pull(options []bson.M) bson.M
}
func NewMongoHelper ¶
func NewMongoHelper() IMongoDBHelper
type IMongoIndexBatch ¶
type IMongoIndexer ¶
type IMongoIndexer interface {
Add(batch IMongoIndexBatch)
Execute() error
}
func NewMongoIndexer ¶
func NewMongoIndexer(ctx IContext) IMongoIndexer
type IRequester ¶
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 ¶
func NewRequester(ctx IContext) IRequester
type IS3 ¶
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 IValidMessage ¶
type IValidMessage struct {
Name string `json:"-"`
Code string `json:"code"`
Message string `json:"message"`
Data interface{} `json:"data,omitempty"`
}
func (IValidMessage) Error ¶
func (f IValidMessage) Error() string
type IValidateContext ¶
type KeywordCondition ¶
type KeywordCondition string
type KeywordConditionWrapper ¶
type KeywordConditionWrapper struct {
Condition KeywordCondition
KeywordOptions []KeywordOptions
}
func NewKeywordAndCondition ¶
func NewKeywordAndCondition(keywordOptions []KeywordOptions) *KeywordConditionWrapper
func NewKeywordOrCondition ¶
func NewKeywordOrCondition(keywordOptions []KeywordOptions) *KeywordConditionWrapper
type KeywordOptions ¶
type KeywordOptions struct {
Type KeywordType
Key string
Value string
}
func NewKeywordMustMatchOption ¶
func NewKeywordMustMatchOption(key string, value string) *KeywordOptions
func NewKeywordMustMatchOptions ¶
func NewKeywordMustMatchOptions(keys []string, value string) []KeywordOptions
func NewKeywordWildCardOption ¶
func NewKeywordWildCardOption(key string, value string) *KeywordOptions
func NewKeywordWildCardOptions ¶
func NewKeywordWildCardOptions(keys []string, value string) []KeywordOptions
type KeywordType ¶
type KeywordType string
type Logger ¶
type Logger struct {
RequestID string
HostName string
Type consts.ContextType
// contains filtered or unexported fields
}
Log is the logger utility with information of request context
func NewLoggerSimple ¶
func NewLoggerSimple() *Logger
NewLoggerSimple return plain text simple logger
func (*Logger) DebugWithSkip ¶
func (*Logger) ErrorWithSkip ¶
Error log error level
type MQ ¶
type MQConsumeOptions ¶
type MQContext ¶
type MQContext struct {
IContext
}
func (*MQContext) AddConsumer ¶
func (c *MQContext) AddConsumer(handlerFunc func(ctx IMQContext))
type MQContextOptions ¶
type MQContextOptions struct {
ContextOptions *ContextOptions
}
type MQPublishOptions ¶
type MockDatabase ¶
func NewMockDatabase ¶
func NewMockDatabase() *MockDatabase
type MockLogger ¶
func NewMockLogger ¶
func NewMockLogger() *MockLogger
func (*MockLogger) Debug ¶
func (m *MockLogger) Debug(args ...interface{})
func (*MockLogger) Error ¶
func (m *MockLogger) Error(message error, args ...interface{})
func (*MockLogger) Info ¶
func (m *MockLogger) Info(args ...interface{})
func (*MockLogger) Warn ¶
func (m *MockLogger) Warn(args ...interface{})
type MockMQ ¶
func (*MockMQ) Conn ¶
func (m *MockMQ) Conn() *amqp.Connection
func (*MockMQ) PublishJSON ¶
func (m *MockMQ) PublishJSON(name string, data interface{}, options *MQPublishOptions) error
type MockMiddlewareManual ¶
type MockMiddlewareManual func(c IHTTPContext) error
type MockMiddlewareOptions ¶
type MockMiddlewareOptions struct {
Wrapper MockMiddlewareWrapper
Manual MockMiddlewareManual
IsPagination bool
IsDisabled bool
}
type MockMiddlewareWrapper ¶
type MockMiddlewareWrapper func(model interface{}) interface{}
type MockMongoDB ¶
func NewMockMongoDB ¶
func NewMockMongoDB() *MockMongoDB
func (*MockMongoDB) Close ¶
func (m *MockMongoDB) Close()
func (*MockMongoDB) Count ¶
func (m *MockMongoDB) Count(coll string, filter interface{}, opts ...*options.CountOptions) (int64, error)
func (*MockMongoDB) Create ¶
func (m *MockMongoDB) Create(coll string, document interface{}, opts ...*options.InsertOneOptions) (*mongo.InsertOneResult, error)
func (*MockMongoDB) DB ¶
func (m *MockMongoDB) DB() *mongo.Database
func (*MockMongoDB) DeleteMany ¶
func (m *MockMongoDB) DeleteMany(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
func (*MockMongoDB) DeleteOne ¶
func (m *MockMongoDB) DeleteOne(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
func (*MockMongoDB) Drop ¶
func (m *MockMongoDB) Drop(coll string) error
func (*MockMongoDB) Find ¶
func (m *MockMongoDB) Find(dest interface{}, coll string, filter interface{}, opts ...*options.FindOptions) error
func (*MockMongoDB) FindAggregate ¶
func (m *MockMongoDB) FindAggregate(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
func (*MockMongoDB) FindAggregateOne ¶
func (m *MockMongoDB) FindAggregateOne(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
func (*MockMongoDB) FindAggregatePagination ¶
func (m *MockMongoDB) FindAggregatePagination(dest interface{}, coll string, pipeline interface{}, pageOptions *PageOptions, opts ...*options.AggregateOptions) (*PageResponse, error)
func (*MockMongoDB) FindOne ¶
func (m *MockMongoDB) FindOne(dest interface{}, coll string, filter interface{}, opts ...*options.FindOneOptions) error
func (*MockMongoDB) FindOneAndDelete ¶
func (m *MockMongoDB) FindOneAndDelete(coll string, filter interface{}, opts ...*options.FindOneAndDeleteOptions) error
func (*MockMongoDB) FindOneAndUpdate ¶
func (m *MockMongoDB) FindOneAndUpdate(dest interface{}, coll string, filter interface{}, update interface{}, opts ...*options.FindOneAndUpdateOptions) error
func (*MockMongoDB) FindPagination ¶
func (m *MockMongoDB) FindPagination(dest interface{}, coll string, filter interface{}, pageOptions *PageOptions, opts ...*options.FindOptions) (*PageResponse, error)
func (*MockMongoDB) Helper ¶
func (m *MockMongoDB) Helper() IMongoDBHelper
func (*MockMongoDB) UpdateOne ¶
func (m *MockMongoDB) UpdateOne(coll string, filter interface{}, update interface{}, opts ...*options.UpdateOptions) (*mongo.UpdateResult, error)
type MockMongoIndexBatch ¶
func NewMockMongoIndexBatch ¶
func NewMockMongoIndexBatch() *MockMongoIndexBatch
func (*MockMongoIndexBatch) Name ¶
func (m *MockMongoIndexBatch) Name() string
func (*MockMongoIndexBatch) Run ¶
func (m *MockMongoIndexBatch) Run() error
type MockMongoIndexer ¶
type MockMongoIndexer struct {
mock.Mock
Batches []*MockMongoIndexBatch
}
func NewMockMongoIndexer ¶
func NewMockMongoIndexer() *MockMongoIndexer
func (*MockMongoIndexer) Add ¶
func (m *MockMongoIndexer) Add(batch *MockMongoIndexBatch)
func (*MockMongoIndexer) Execute ¶
func (m *MockMongoIndexer) Execute() error
type MockRequester ¶
func NewMockRequester ¶
func NewMockRequester() *MockRequester
func (*MockRequester) Delete ¶
func (m *MockRequester) Delete(url string, options *RequesterOptions) (*RequestResponse, error)
func (*MockRequester) Get ¶
func (m *MockRequester) Get(url string, options *RequesterOptions) (*RequestResponse, error)
func (*MockRequester) Patch ¶
func (m *MockRequester) Patch(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (*MockRequester) Post ¶
func (m *MockRequester) Post(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (*MockRequester) Put ¶
func (m *MockRequester) Put(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
type MongoDB ¶
type MongoDB struct {
// contains filtered or unexported fields
}
func (MongoDB) Create ¶
func (m MongoDB) Create(coll string, document interface{}, opts ...*options.InsertOneOptions) (*mongo.InsertOneResult, error)
func (MongoDB) CreateIndex ¶
func (m MongoDB) CreateIndex(coll string, models []mongo.IndexModel, opts ...*options.CreateIndexesOptions) ([]string, error)
func (MongoDB) DeleteMany ¶
func (m MongoDB) DeleteMany(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
func (MongoDB) DeleteOne ¶
func (m MongoDB) DeleteOne(coll string, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error)
func (MongoDB) DropAll ¶
func (m MongoDB) DropAll(coll string, opts ...*options.DropIndexesOptions) (*MongoDropIndexResult, error)
func (MongoDB) DropIndex ¶
func (m MongoDB) DropIndex(coll string, name string, opts ...*options.DropIndexesOptions) (*MongoDropIndexResult, error)
func (MongoDB) Find ¶
func (m MongoDB) Find(dest interface{}, coll string, filter interface{}, opts ...*options.FindOptions) error
func (MongoDB) FindAggregate ¶
func (m MongoDB) FindAggregate(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
func (MongoDB) FindAggregateOne ¶
func (m MongoDB) FindAggregateOne(dest interface{}, coll string, pipeline interface{}, opts ...*options.AggregateOptions) error
func (MongoDB) FindAggregatePagination ¶
func (m MongoDB) FindAggregatePagination(dest interface{}, coll string, pipeline interface{}, pageOptions *PageOptions, opts ...*options.AggregateOptions) (*PageResponse, error)
func (MongoDB) FindAggregatePaginationCustomTotal ¶
func (m MongoDB) FindAggregatePaginationCustomTotal(dest interface{}, coll string, pipeline []bson.M, pipelineTotalCount []bson.M, pageOptions *PageOptions, opts ...*options.AggregateOptions) (*PageResponse, error)
func (MongoDB) FindOne ¶
func (m MongoDB) FindOne(dest interface{}, coll string, filter interface{}, opts ...*options.FindOneOptions) error
func (MongoDB) FindOneAndDelete ¶
func (m MongoDB) FindOneAndDelete(coll string, filter interface{}, opts ...*options.FindOneAndDeleteOptions) error
func (MongoDB) FindOneAndUpdate ¶
func (m MongoDB) FindOneAndUpdate(dest interface{}, coll string, filter interface{}, update interface{}, opts ...*options.FindOneAndUpdateOptions) error
func (MongoDB) FindPagination ¶
func (m MongoDB) FindPagination(dest interface{}, coll string, filter interface{}, pageOptions *PageOptions, opts ...*options.FindOptions) (*PageResponse, error)
func (MongoDB) Helper ¶
func (m MongoDB) Helper() IMongoDBHelper
func (MongoDB) ListIndex ¶
func (m MongoDB) ListIndex(coll string, opts ...*options.ListIndexesOptions) ([]MongoListIndexResult, error)
func (MongoDB) UpdateOne ¶
func (m MongoDB) UpdateOne(coll string, filter interface{}, update interface{}, opts ...*options.UpdateOptions) (*mongo.UpdateResult, error)
type MongoDropIndexResult ¶
type MongoDropIndexResult struct {
DropCount int64 `json:"drop_count" bson:"nIndexesWas"`
}
type MongoFilterOptions ¶
type MongoIndexer ¶
type MongoIndexer struct {
Batches []IMongoIndexBatch
// contains filtered or unexported fields
}
func (*MongoIndexer) Add ¶
func (i *MongoIndexer) Add(batch IMongoIndexBatch)
func (*MongoIndexer) Execute ¶
func (i *MongoIndexer) Execute() error
type MongoListIndexResult ¶
type MongoLookupOptions ¶
type PageOptions ¶
func (*PageOptions) SetOrderDefault ¶
func (p *PageOptions) SetOrderDefault(orders ...string)
type PageOptionsOptions ¶
type PageOptionsOptions struct {
OrderByAllowed []string
}
type PageResponse ¶
type PageResponse struct {
Total int64
Limit int64
Count int64
Page int64
Q string
OrderBy []string
}
func Paginate ¶
func Paginate(db *gorm.DB, model interface{}, options *PageOptions) (*PageResponse, error)
type Pagination ¶
type Pagination struct {
Page int64 `json:"page"`
Total int64 `json:"total"`
Limit int64 `json:"limit"`
Count int64 `json:"count"`
Items interface{} `json:"items"`
}
func NewPagination ¶
func NewPagination(items interface{}, options *PageResponse) *Pagination
type RequestResponse ¶
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
deprecated
func RequestWrapper(dest interface{}, requester func() (*RequestResponse, error)) (*RequestResponse, error)
Deprecated: RequestWrapper is deprecated, use RequestToStruct or RequestToStructPagination instead.
type Requester ¶
type Requester struct {
// contains filtered or unexported fields
}
func (Requester) Create ¶
func (r Requester) Create(method RequesterMethodType, url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (Requester) Delete ¶
func (r Requester) Delete(url string, options *RequesterOptions) (*RequestResponse, error)
func (Requester) Get ¶
func (r Requester) Get(url string, options *RequesterOptions) (*RequestResponse, error)
func (Requester) Patch ¶
func (r Requester) Patch(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (Requester) Post ¶
func (r Requester) Post(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
func (Requester) Put ¶
func (r Requester) Put(url string, body interface{}, options *RequesterOptions) (*RequestResponse, error)
type RequesterMethodType ¶
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 ¶
type S3Config ¶
type UploadOptions ¶
type Valid ¶
type Valid struct {
// contains filtered or unexported fields
}
Validator type
func (*Valid) GetMessage ¶
func (v *Valid) GetMessage() interface{}
func (*Valid) Must ¶
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 (*Valid) OriginalError ¶
func (*Valid) OriginalErrorMessage ¶
type ValidError ¶
type ValidError struct {
// contains filtered or unexported fields
}
Error is the validate error
func (*ValidError) Strings ¶
func (err *ValidError) Strings() []string
Strings returns errors in strings
Source Files
¶
- cache.go
- cache_mock.go
- context.go
- context_mock.go
- cronjob_context.go
- database.go
- database_mock.go
- database_mongo.go
- database_mongo_helper.go
- database_mongo_indexer.go
- database_mongo_indexer_mock.go
- database_mongo_mock.go
- e2e_context.go
- els.go
- els_migration.go
- env.go
- env_mock.go
- error.go
- error_mock.go
- faker.go
- http_context.go
- http_middleware_core.go
- http_middleware_error.go
- http_middleware_logger.go
- http_middleware_mock.go
- http_middleware_with_cache.go
- http_server.go
- logger.go
- logger_mock.go
- mq.go
- mq_context.go
- mq_mock.go
- mq_server.go
- pagination.model.go
- request.const.go
- requester.go
- requester_mock.go
- s3.go
- seeder.go
- sentry.go
- types.go
- valid.go
- valid_base_validator.go
- valid_message.go
- validator.go
Click to show internal directories.
Click to hide internal directories.