Documentation ¶
Overview ¶
Package handles error logs via nats message broker
Index ¶
- Constants
- Variables
- func BindAndValidate(c echo.Context, i interface{}) error
- func HTTPErrorHandler(err error, c echo.Context)
- func MongoNoDocuments(err error) bool
- func RandomBase64(n int) (string, error)
- func RandomBytes(n int) ([]byte, error)
- type Avatar
- type CORSConfig
- type Callback
- type ErrorResponse
- type HydraClient
- type IDjango
- type IDjangoError
- type LinkToken
- type LoadEnv
- func (l LoadEnv) GetEnvBool(key string, lvl string, dVal bool) bool
- func (l LoadEnv) GetEnvInt(key string, lvl string, dVal int) int
- func (l LoadEnv) GetEnvString(key string, lvl string, dVal string) string
- func (l LoadEnv) GetEnvStringList(key string, lvl string, dVal []string) []string
- func (l LoadEnv) Validate()
- type LogError
- type LoggingHandler
- type Modified
- type Money
- type MongoColl
- func (i *MongoColl) Aggregate(ctx context.Context, filter bson.D, value interface{}) (err error)
- func (i *MongoColl) CreateIndex(field string, unique bool) *MongoColl
- func (i *MongoColl) DeleteOne(ctx context.Context, filter bson.M) (err error)
- func (i *MongoColl) Find(ctx context.Context, filter bson.M, value interface{}) (err error)
- func (i *MongoColl) FindOne(ctx context.Context, filter bson.M, value interface{}) (err error)
- func (i *MongoColl) InsertOne(ctx context.Context, value interface{}) (err error)
- func (i *MongoColl) InsertOrUpdate(ctx context.Context, filter bson.M, value interface{}) (err error)
- func (i *MongoColl) UpdateOne(ctx context.Context, filter bson.M, value interface{}) (err error)
- type MongoDB
- type MongoError
- type NatsDAO
- type Profile
- type Response
- func (i *Response) BadRequest() (int, *Response)
- func (i *Response) Conflict() (int, *Response)
- func (i *Response) Created() (int, *Response)
- func (i *Response) Deleted() (int, *Response)
- func (i *Response) Executed() (int, *Response)
- func (i *Response) InternalServerError() (int, *Response)
- func (i *Response) NotFound() (int, *Response)
- func (i *Response) Selected() (int, *Response)
- func (i *Response) Updated() (int, *Response)
- type Status
- func (i *Status) Created(message string)
- func (i *Status) Done(message string)
- func (i *Status) Error() string
- func (i *Status) Failed(message string)
- func (i *Status) Internal(message string)
- func (i *Status) Open(message string)
- func (i *Status) Process(message string)
- func (i *Status) Response() (int, interface{})
- func (i *Status) Set(t string, message string) *Status
- func (i *Status) ValidateDone() error
- type User
- type UserClaims
- type ValidationError
- type Validator
Constants ¶
const StatusCREATED = "created"
const StatusDONE = "done"
const StatusFAILED = "failed"
const StatusINTERNAL = "internal_error"
const StatusOPEN = "open"
const StatusPROCESS = "process"
Variables ¶
var CORS = new(CORSConfig)
var Config = LoadConfig()
var ErrMongoDelete = errors.New("no delete document")
ErrMongoDelete represents an delete error in mongo case
var ErrMongoUpdate = errors.New("no updated document")
ErrMongoUpdate represents an update error in mongo case
var HTTPBaseCookie http.Cookie
HTTPBaseCookie defines the base cookie setup for vcago
var JSONValidator = NewValidator()
var Logger = new(LoggingHandler)
var Nats = new(NatsDAO)
var NatsHost string
NatsHost is the ip of the nats service.
var NatsPort string
NatsPort is the port ot the nats service.
Functions ¶
func BindAndValidate ¶ added in v1.0.2
func BindAndValidate(c echo.Context, i interface{}) error
func HTTPErrorHandler ¶ added in v1.0.2
func HTTPErrorHandler(err error, c echo.Context)
HTTPErrorHandler handles echo.HTTPError and return the correct response.
func MongoNoDocuments ¶ added in v1.1.2
func RandomBase64 ¶ added in v1.0.2
RandomBase64 generate random Base64 string
func RandomBytes ¶ added in v1.0.2
RandomBytes return random bytes
Types ¶
type CORSConfig ¶ added in v0.0.7
type CORSConfig struct {
// contains filtered or unexported fields
}
func (*CORSConfig) Init ¶ added in v1.1.2
func (i *CORSConfig) Init() echo.MiddlewareFunc
NewCORSConfig create a echo middleware for cors handling.
type ErrorResponse ¶ added in v1.0.2
type ErrorResponse struct { Status int `json:"-"` Message string `json:"message"` Body interface{} `json:"body,omitempty"` Coll string `json:"collection,omitempty"` Model string `json:"model,omitempty"` }
Response represents an response json in case of an error.
func BadRequest ¶ added in v1.0.2
func BadRequest(message string, body ...interface{}) (int, *ErrorResponse)
BadRequest creates an echo.HTTPError with the status http.StatusBadRequest
func Conflict ¶ added in v1.0.2
func Conflict(message string, body ...interface{}) (int, *ErrorResponse)
Conflict creates an echo.HTTPError with the status http.StatusConflict
func InternalServerError ¶ added in v1.0.2
func InternalServerError() (int, ErrorResponse)
InternalServerError creates an echo.HTTPError with the status http.StatusInternalServerError
func NotFound ¶ added in v1.0.2
func NotFound(message string, body ...interface{}) (int, *ErrorResponse)
NotFound creates an echo.HTTPError with the status http.StatusNotFound
type HydraClient ¶ added in v1.1.4
type HydraClient struct { Oauth2Config oauth2.Config Verifier *oidc.IDTokenVerifier }
func NewHydraClient ¶ added in v1.1.4
func NewHydraClient() (r *HydraClient)
type IDjango ¶ added in v1.0.2
Mongo represents the initial struct for an Mongo connection.
type IDjangoError ¶ added in v1.0.2
type IDjangoError struct { Err error `json:"error" bson:"error"` Message string `json:"message" bson:"message"` Code int `json:"code" bson:"code"` Body interface{} `json:"body" bson:"body"` Line int `json:"line" bson:"line"` File string `json:"file" bson:"file"` }
func NewIDjangoError ¶ added in v1.0.2
func NewIDjangoError(err error, code int, body interface{}) *IDjangoError
func (*IDjangoError) Error ¶ added in v1.0.2
func (i *IDjangoError) Error() string
type LinkToken ¶ added in v1.0.2
type LinkToken struct { ID string `bson:"_id" json:"token_id"` Code string `bson:"code" json:"code"` Tcase string `json:"t_case"` Scope string `json:"scope"` Expired int64 `json:"expired"` Created int64 `json:"created"` ModelID string `json:"model_id" bson:"model_id"` }
LinkToken is used for handling link with token
type LoadEnv ¶ added in v0.1.1
type LoadEnv []bool
LoadEnv used for loading environment variables.
func LoadConfig ¶ added in v1.0.2
func LoadConfig() *LoadEnv
func (LoadEnv) GetEnvBool ¶ added in v0.1.1
GetEnvBool load a key from environment variables as bool.
func (LoadEnv) GetEnvInt ¶ added in v0.1.1
GetEnvInt loads a key from enviroment variables as int. The lvl param defines the log level. For warnings set "w" and for error set "e". If the variable is not used or can be ignored use n for do nothing. The default value can be set by the dVal param.
func (LoadEnv) GetEnvString ¶ added in v0.1.1
GetEnvString loads a key from enviroment variables as string. The lvl param defines the log level. For warnings set "w" and for error set "e". If the variable is not used or can be ignored use n for do nothing. The default value can be set by the dVal param.
func (LoadEnv) GetEnvStringList ¶ added in v0.1.1
GetEnvStringList as
type LogError ¶ added in v1.0.2
type LogError struct { ID string `json:"id" bson:"_id"` Service string `json:"service" bson:"service"` Time string `json:"time" bson:"time"` RemoteIP string `json:"remote_ip" bson:"remote_io"` Host string `json:"host" bson:"host"` Method string `json:"method" bson:"method"` Uri string `json:"uri" bson:"uri"` UserAgent string `json:"user_agent" bson:"user_agent"` Status int `json:"status" bson:"status"` Error interface{} `json:"error" bson:"error"` Latency int64 `json:"latency" bson:"latency"` LatencyHuman string `json:"latency_human" bson:"latency_human"` ByteIn string `json:"byte_in" bson:"byte_in"` ByteOut string `json:"byte_out" bson:"byte_out"` Modified Modified `json:"modified" bson:"modified"` }
LogError represents the an LogError for handling via nats and store into mongo databases. The struct matches the Config Format string as json.
type LoggingHandler ¶ added in v1.0.2
type LoggingHandler struct {
// contains filtered or unexported fields
}
Logger struct for handling the nats connection.
func (*LoggingHandler) Init ¶ added in v1.1.2
func (i *LoggingHandler) Init() echo.MiddlewareFunc
Config for echo middleware Logger. Use logger for handle Nats connection.
func (*LoggingHandler) Log ¶ added in v1.0.2
func (i *LoggingHandler) Log(logError *LogError)
Log publish the LogError to nats route "logger.log".
type Modified ¶
type Modified struct { Updated int64 `json:"updated" bson:"updated"` Created int64 `json:"created" bson:"created"` }
func NewModified ¶ added in v1.1.2
func NewModified() Modified
NewModified initial Modified model, cTime is the current time Unix format.
type Money ¶ added in v1.0.3
type Money struct { Amount int64 `bson:"amount" json:"amount" validate:"required"` Currency string `bson:"currency" json:"currency" validate:"required"` }
func (*Money) ValidateAmount ¶ added in v1.0.3
func (*Money) ValidateCurrency ¶ added in v1.0.3
type MongoColl ¶ added in v1.0.5
type MongoColl struct { Name string DatabaseName string Collection *mongo.Collection }
MongoColl represents an mongo db database collection
func (*MongoColl) CreateIndex ¶ added in v1.0.5
CreateIndex creates an index for a given collection.
func (*MongoColl) DeleteOne ¶ added in v1.0.5
DeleteOne deletes an element from given collection by the bson.M filter.
func (*MongoColl) FindOne ¶ added in v1.0.5
FindOne select an element form database by using a given filter. The element will bind to the value interface{}. In error case it return an MongoError as error.
func (*MongoColl) InsertOne ¶ added in v1.0.5
InsertOne inserts a value and return an MongoError as error.
type MongoDB ¶ added in v1.0.5
Mongo represents the initial struct for an Mongo connection.
func NewMongoDB ¶ added in v1.0.5
func NewMongoDB() (r *MongoDB)
NewMongoDB creates a new MongoDB connects to mongoDB and return an Mongo struct.
func (*MongoDB) Collection ¶ added in v1.0.5
type MongoError ¶ added in v1.0.2
type MongoError struct { Err error `json:"-" bson:"-"` Message string `json:"message" bson:"message"` Filter interface{} `json:"filter" bson:"filter"` Value interface{} `json:"value" bson:"value"` Database string `json:"database" bson:"database"` Collection string `json:"collection" bson:"collection"` Line int `json:"line" bson:"line"` File string `json:"file" bson:"file"` }
MongoError represents the struct of an mongo Error type.
func NewMongoError ¶ added in v1.0.2
func NewMongoError(err error, value interface{}, filter bson.M, database string, collection string) *MongoError
NewMongoError creates an mongo Error for an given parameter set
func (*MongoError) Error ¶ added in v1.0.2
func (i *MongoError) Error() string
Error return string of the error
func (*MongoError) Response ¶ added in v1.0.2
func (i *MongoError) Response() (int, interface{})
Response return the ErrorResponse for handling in httpErrorHandler
type NatsDAO ¶ added in v1.0.2
type NatsDAO struct {
// contains filtered or unexported fields
}
Nats represents the config struct for Nats service.
type Profile ¶
type Profile struct { FirstName string `bson:"first_name" json:"first_name" validate:"required"` LastName string `bson:"last_name" json:"last_name" validate:"required"` FullName string `bson:"full_name" json:"full_name"` DisplayName string `bson:"display_name" json:"display_name"` Gender string `bson:"gender" json:"gender"` Country string `bson:"country" json:"country"` Avatar Avatar `bson:"avatar" json:"avatar"` }
Profile contains the profile information of an user model
type Response ¶ added in v1.0.3
type Response struct { Message string `json:"message" bson:"message"` Model string `json:"model,omitempty" bson:"model,omitempty"` Payload interface{} `json:"payload,omitempty" bson:"payload,omitempty"` }
Response represents the default api response struct Message shows action information Model shows the collection that would be attached Payload contains the response model
func NewResponse ¶ added in v1.0.3
NewResponse can be used for create Response struct
func (*Response) BadRequest ¶ added in v1.1.2
func (*Response) InternalServerError ¶ added in v1.1.2
type Status ¶ added in v1.0.3
type Status struct { StatusType string `bson:"status_type" json:"status_type"` StatusMessage string `bson:"status_message" json:"status_message"` }
func NewStatusInternal ¶ added in v1.0.3
func (*Status) ValidateDone ¶ added in v1.0.3
type User ¶
type User struct { ID string `json:"id,omitempty" bson:"_id"` Email string `json:"email" bson:"email" validate:"required,email"` Profile Profile `json:"profile" bson:"profile"` Roles string `json:"roles" bson:"roles"` }
User represents the user model
type UserClaims ¶ added in v1.1.4
type UserClaims struct {
User User `json:"user"`
}
type ValidationError ¶ added in v1.0.2
type ValidationError struct {
Errors []string `json:"errors"`
}
func NewValidationError ¶ added in v1.1.2
func NewValidationError(err string) *ValidationError
func (*ValidationError) Bind ¶ added in v1.0.2
func (i *ValidationError) Bind(err error)
func (*ValidationError) Error ¶ added in v1.0.2
func (i *ValidationError) Error() string
func (*ValidationError) Response ¶ added in v1.0.3
func (i *ValidationError) Response() (int, interface{})
func (*ValidationError) Valid ¶ added in v1.0.2
func (i *ValidationError) Valid(err error)