pkg

package
v1.31.0-beta.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CustomContextKey = customContextKey("custom_context")

Functions

func CamelToSnakeCase

func CamelToSnakeCase(str string) string

CamelToSnakeCase converts a given camelCase string to snake_case format.

func CheckMetadataKeyAndValueLength

func CheckMetadataKeyAndValueLength(limit int, metadata map[string]any) error

CheckMetadataKeyAndValueLength check the length of key and value to a limit pass by on field limit

func Contains

func Contains[T comparable](slice []T, item T) bool

Contains checks if an item is in a slice. This function uses type parameters to work with any slice type.

func ContextWithLogger

func ContextWithLogger(ctx context.Context, logger mlog.Logger) context.Context

ContextWithLogger returns a context within a Logger in "logger" value.

func ContextWithMidazID

func ContextWithMidazID(ctx context.Context, midazID string) context.Context

ContextWithMidazID returns a context within a MidazID in "midazID" value.

func ContextWithTracer

func ContextWithTracer(ctx context.Context, tracer trace.Tracer) context.Context

ContextWithTracer returns a context within a trace.Tracer in "tracer" value.

func EnsureConfigFromEnvVars

func EnsureConfigFromEnvVars(s any) any

EnsureConfigFromEnvVars ensures that an interface will be settled using SetConfigFromEnvVars anyway.

func GenerateUUIDv7

func GenerateUUIDv7() uuid.UUID

GenerateUUIDv7 generate a new uuid v7 using google/uuid package and return it. If an error occurs, it will return the error.

func GetCPUUsage

func GetCPUUsage(ctx context.Context) int64

GetCPUUsage get the current CPU usage

func GetMapNumKinds

func GetMapNumKinds() map[reflect.Kind]bool

GetMapNumKinds get the map of numeric kinds to use in validations and conversions.

The numeric kinds are: - int - int8 - int16 - int32 - int64 - float32 - float64

func GetMemUsage

func GetMemUsage(ctx context.Context) int64

GetMemUsage get the current memory usage

func GetenvBoolOrDefault

func GetenvBoolOrDefault(key string, defaultValue bool) bool

GetenvBoolOrDefault returns the value of os.Getenv(key string) value as bool or defaultValue if error Is the environment variable (key) is not defined, it returns the given defaultValue If the environment variable (key) is not a valid bool format, it returns the given defaultValue If any error occurring during bool parse, it returns the given defaultValue.

func GetenvIntOrDefault

func GetenvIntOrDefault(key string, defaultValue int64) int64

GetenvIntOrDefault returns the value of os.Getenv(key string) value as int or defaultValue if error If the environment variable (key) is not defined, it returns the given defaultValue If the environment variable (key) is not a valid int format, it returns the given defaultValue If any error occurring during int parse, it returns the given defaultValue.

func GetenvOrDefault

func GetenvOrDefault(key string, defaultValue string) string

GetenvOrDefault encapsulate built-in os.Getenv behavior but if key is not present it returns the defaultValue.

func IsNilOrEmpty

func IsNilOrEmpty(s *string) bool

IsNilOrEmpty returns a boolean indicating if a *string is nil or empty. It's use TrimSpace so, a string " " and "" and "null" and "nil" will be considered empty

func IsUUID

func IsUUID(s string) bool

IsUUID Validate if the string pass through is an uuid

func MergeMaps

func MergeMaps(source, target map[string]any) map[string]any

MergeMaps Following the JSON Merge Patch

func NewLoggerFromContext

func NewLoggerFromContext(ctx context.Context) mlog.Logger

NewLoggerFromContext extract the Logger from "logger" value inside context

func NewMidazIDFromContext

func NewMidazIDFromContext(ctx context.Context) string

NewMidazIDFromContext returns a MidazID from the context.

func NewTracerFromContext

func NewTracerFromContext(ctx context.Context) trace.Tracer

NewTracerFromContext returns a new tracer from the context.

func RegexIgnoreAccents

func RegexIgnoreAccents(regex string) string

RegexIgnoreAccents receives a regex, then, for each char it's adds the accents variations to expression Ex: Given "a" -> "aáàãâ" Ex: Given "c" -> "ç"

func RemoveAccents

func RemoveAccents(word string) (string, error)

RemoveAccents removes accents of a given word and returns it

func RemoveChars

func RemoveChars(str string, chars map[string]bool) string

RemoveChars from a string

func RemoveSpaces

func RemoveSpaces(word string) string

RemoveSpaces removes spaces of a given word and returns it

func ReplaceUUIDWithPlaceholder

func ReplaceUUIDWithPlaceholder(path string) string

ReplaceUUIDWithPlaceholder replaces UUIDs with a placeholder in a given path string.

func SafeIntToUint64

func SafeIntToUint64(val int) uint64

SafeIntToUint64 safe mode to converter int to uint64

func SetConfigFromEnvVars

func SetConfigFromEnvVars(s any) error

SetConfigFromEnvVars builds a struct by setting it fields values using the "var" tag Constraints: s any - must be an initialized pointer Supported types: String, Boolean, Int, Int8, Int16, Int32 and Int64.

func StructToJSONString

func StructToJSONString(s any) (string, error)

StructToJSONString convert a struct to json string

func ValidateAccountType

func ValidateAccountType(t string) error

ValidateAccountType validate type values of accounts

func ValidateBadRequestFieldsError

func ValidateBadRequestFieldsError(requiredFields, knownInvalidFields map[string]string, entityType string, unknownFields map[string]any) error

ValidateBadRequestFieldsError validates the error and returns the appropriate bad request error code, title, message, and the invalid fields.

Parameters: - requiredFields: A map of missing required fields and their error messages. - knownInvalidFields: A map of known invalid fields and their validation errors. - entityType: The type of the entity associated with the error. - unknownFields: A map of unknown fields and their error messages.

Returns: - An error indicating the validation result, which could be a ValidationUnknownFieldsError or a ValidationKnownFieldsError.

func ValidateBusinessError

func ValidateBusinessError(err error, entityType string, args ...any) error

ValidateBusinessError validates the error and returns the appropriate business error code, title, and message.

Parameters:

Returns:

  • error: The appropriate business error with code, title, and message.

func ValidateCode

func ValidateCode(code string) error

func ValidateCountryAddress

func ValidateCountryAddress(country string) error

ValidateCountryAddress validate if country in object address contains in countries list using ISO 3166-1 alpha-2

func ValidateCurrency

func ValidateCurrency(code string) error

ValidateCurrency validate if code contains in currencies list using ISO 4217

func ValidateInternalError

func ValidateInternalError(err error, entityType string) error

ValidateInternalError validates the error and returns an appropriate InternalServerError.

Parameters: - err: The error to be validated. - entityType: The type of the entity associated with the error.

Returns: - An InternalServerError with the appropriate code, title, message.

func ValidateServerAddress added in v1.30.0

func ValidateServerAddress(value string) string

ValidateServerAddress checks if the value matches the pattern <some-address>:<some-port> and returns the value if it does.

func ValidateType

func ValidateType(t string) error

ValidateType validate type values of currencies

Types

type App

type App interface {
	Run(launcher *Launcher) error
}

App represents an application that will run as a deployable component. It's an entrypoint at main.go.

type CustomContextKeyValue

type CustomContextKeyValue struct {
	MidazID string
	Tracer  trace.Tracer
	Logger  mlog.Logger
}

type EntityConflictError

type EntityConflictError struct {
	EntityType string
	Title      string
	Message    string
	Code       string
	Err        error
}

EntityConflictError records an error indicating an entity already exists in some repository You can use it to representing a Database conflict, cache or any other repository.

func (EntityConflictError) Error

func (e EntityConflictError) Error() string

Error implements the error interface.

func (EntityConflictError) Unwrap

func (e EntityConflictError) Unwrap() error

Unwrap implements the error interface introduced in Go 1.13 to unwrap the internal error.

type EntityNotFoundError

type EntityNotFoundError struct {
	EntityType string
	Title      string
	Message    string
	Code       string
	Err        error
}

EntityNotFoundError records an error indicating an entity was not found in any case that caused it. You can use it to representing a Database not found, cache not found or any other repository.

func (EntityNotFoundError) Error

func (e EntityNotFoundError) Error() string

Error implements the error interface.

func (EntityNotFoundError) Unwrap

func (e EntityNotFoundError) Unwrap() error

Unwrap implements the error interface introduced in Go 1.13 to unwrap the internal error.

type FailedPreconditionError

type FailedPreconditionError struct {
	EntityType string `json:"entityType,omitempty"`
	Title      string `json:"title,omitempty"`
	Message    string `json:"message,omitempty"`
	Code       string `json:"code,omitempty"`
	Err        error  `json:"err,omitempty"`
}

FailedPreconditionError indicates a precondition failed during an operation.

func (FailedPreconditionError) Error

func (e FailedPreconditionError) Error() string

type FieldValidations

type FieldValidations map[string]string

FieldValidations is a map of known fields and their validation errors.

type ForbiddenError

type ForbiddenError struct {
	EntityType string `json:"entityType,omitempty"`
	Title      string `json:"title,omitempty"`
	Message    string `json:"message,omitempty"`
	Code       string `json:"code,omitempty"`
	Err        error  `json:"err,omitempty"`
}

ForbiddenError indicates an operation that couldn't be performant because the authenticated user has no sufficient privileges.

func (ForbiddenError) Error

func (e ForbiddenError) Error() string

type HTTPError

type HTTPError struct {
	EntityType string
	Title      string
	Message    string
	Code       string
	Err        error
}

HTTPError indicates a http error raised in a http client.

func (HTTPError) Error

func (e HTTPError) Error() string

type InternalServerError

type InternalServerError struct {
	EntityType string `json:"entityType,omitempty"`
	Title      string `json:"title,omitempty"`
	Message    string `json:"message,omitempty"`
	Code       string `json:"code,omitempty"`
	Err        error  `json:"err,omitempty"`
}

InternalServerError indicates a precondition failed during an operation.

func (InternalServerError) Error

func (e InternalServerError) Error() string

type Launcher

type Launcher struct {
	Logger mlog.Logger

	Verbose bool
	// contains filtered or unexported fields
}

Launcher manages apps.

func NewLauncher

func NewLauncher(opts ...LauncherOption) *Launcher

NewLauncher create an instance of Launch.

func (*Launcher) Add

func (l *Launcher) Add(appName string, a App) *Launcher

Add runs an application in a goroutine.

func (*Launcher) Run

func (l *Launcher) Run()

Run every application registered before with Run method.

type LauncherOption

type LauncherOption func(l *Launcher)

LauncherOption defines a function option for Launcher.

func RunApp

func RunApp(name string, app App) LauncherOption

RunApp start all process registered before to the launcher.

func WithLogger

func WithLogger(logger mlog.Logger) LauncherOption

WithLogger adds a mlog.Logger component to launcher.

type LocalEnvConfig

type LocalEnvConfig struct {
	Initialized bool
}

LocalEnvConfig is used to automatically call the InitLocalEnvConfig method using Dependency Injection So, if a func parameter or a struct field depends on LocalEnvConfig, when DI starts, it will call InitLocalEnvConfig as the LocalEnvConfig provider.

func InitLocalEnvConfig

func InitLocalEnvConfig() *LocalEnvConfig

InitLocalEnvConfig load a .env file to set up local environment vars It's called once per application process.

type ResponseError

type ResponseError struct {
	Code    int    `json:"code,omitempty"`
	Title   string `json:"title,omitempty"`
	Message string `json:"message,omitempty"`
}

ResponseError is a struct used to return errors to the client.

func (ResponseError) Error

func (r ResponseError) Error() string

Error returns the message of the ResponseError.

No parameters. Returns a string.

type UnauthorizedError

type UnauthorizedError struct {
	EntityType string `json:"entityType,omitempty"`
	Title      string `json:"title,omitempty"`
	Message    string `json:"message,omitempty"`
	Code       string `json:"code,omitempty"`
	Err        error  `json:"err,omitempty"`
}

UnauthorizedError indicates an operation that couldn't be performant because there's no user authenticated.

func (UnauthorizedError) Error

func (e UnauthorizedError) Error() string

type UnknownFields

type UnknownFields map[string]any

UnknownFields is a map of unknown fields and their error messages.

type UnprocessableOperationError

type UnprocessableOperationError struct {
	EntityType string
	Title      string
	Message    string
	Code       string
	Err        error
}

UnprocessableOperationError indicates an operation that couldn't be performant because it's invalid.

func (UnprocessableOperationError) Error

type ValidationError

type ValidationError struct {
	EntityType string `json:"entityType,omitempty"`
	Title      string
	Message    string
	Code       string
	Err        error `json:"err,omitempty"`
}

ValidationError records an error indicating an entity was not found in any case that caused it. You can use it to representing a Database not found, cache not found or any other repository.

func (ValidationError) Error

func (e ValidationError) Error() string

Error implements the error interface.

func (ValidationError) Unwrap

func (e ValidationError) Unwrap() error

Unwrap implements the error interface introduced in Go 1.13 to unwrap the internal error.

type ValidationKnownFieldsError

type ValidationKnownFieldsError struct {
	EntityType string           `json:"entityType,omitempty"`
	Title      string           `json:"title,omitempty"`
	Code       string           `json:"code,omitempty"`
	Message    string           `json:"message,omitempty"`
	Fields     FieldValidations `json:"fields,omitempty"`
}

ValidationKnownFieldsError records an error that occurred during a validation of known fields.

func (ValidationKnownFieldsError) Error

Error returns the error message for a ValidationKnownFieldsError.

No parameters. Returns a string.

type ValidationUnknownFieldsError

type ValidationUnknownFieldsError struct {
	EntityType string        `json:"entityType,omitempty"`
	Title      string        `json:"title,omitempty"`
	Code       string        `json:"code,omitempty"`
	Message    string        `json:"message,omitempty"`
	Fields     UnknownFields `json:"fields,omitempty"`
}

ValidationUnknownFieldsError records an error that occurred during a validation of known fields.

func (ValidationUnknownFieldsError) Error

Error returns the error message for a ValidationUnknownFieldsError.

No parameters. Returns a string.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL