config

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2025 License: MIT Imports: 7 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Read

func Read(ptr any) error

func ReadConfig

func ReadConfig(ptr any, configPath string) error

Types

type Config

type Config struct {
	Log Log `yaml:"log"`
}

type Database

type Database struct {
	Host        string `yaml:"host" env:"DATABASE_HOST" env-default:"localhost" validate:"required,hostname|ip"`
	Port        int    `yaml:"port" env:"DATABASE_PORT" env-default:"5432" validate:"required,gte=1024,lte=65535"`
	Database    string `yaml:"database" env:"DATABASE_NAME" env-default:"postgres" validate:"required"`
	Username    string `yaml:"username" env:"DATABASE_USERNAME" env-default:"postgres" validate:"required"`
	Password    string `yaml:"password" env:"DATABASE_PASSWORD" env-default:"postgres" validate:"required"`
	Schema      string `yaml:"schema" env:"DATABASE_SCHEMA"`
	MaxOpenConn int    `yaml:"max_open_conn" env:"DATABASE_MAX_OPEN_CONN"`
}

func (Database) ConnStr

func (c Database) ConnStr() string

type Listen

type Listen struct {
	Host string `yaml:"host" env:"LISTEN_HOST" env-default:"0.0.0.0" validate:"ip"`
	Port int    `yaml:"port" env:"LISTEN_PORT" env-default:"8080" validate:"gte=1024,lte=65535"`
}

func (Listen) GetAddress

func (l Listen) GetAddress() string

type Log

type Log struct {
	LogLevel      string `yaml:"level" env:"LOG_LEVEL" validate:"oneof=panic fatal error warning warn info debug trace"`
	ConsoleOutput bool   `yaml:"console_output" env:"LOG_CONSOLE_OUTPUT"`
	Filepath      string `yaml:"filepath" env:"LOG_FILEPATH" validate:"filepath|len=0"`
}

type Minio

type Minio struct {
	Endpoint          string `yaml:"endpoint" env:"MINIO_ENDPOINT"`
	AccessKeyID       string `yaml:"access_key_id" env:"MINIO_ACCESS_KEY_ID"`
	SecretAccessKey   string `yaml:"secret_access_key" env:"MINIO_SECRET_ACCESS_KEY"`
	Secure            bool   `yaml:"secure" env:"MINIO_SECURE"`
	Token             string `yaml:"token" env:"MINIO_TOKEN"`
	UploadFileThreads uint   `yaml:"upload_file_threads" env:"MINIO_UPLOAD_FILE_THREADS"`
}

type TelegramBotConfig

type TelegramBotConfig struct {
	Token        string `yaml:"token" env:"TG_BOT_TOKEN" validate:"required,min=1"`
	PaymentToken string `yaml:"payment_token" env:"TG_BOT_PAYMENT_TOKEN"`
	// timeout in seconds
	Timeout int `yaml:"timeout" env:"TG_BOT_TIMEOUT" validate:"required,min=1,max=1000"`
	Limit   int `yaml:"limit" env:"TG_BOT_LIMIT" validate:"required,min=1,max=1000"`
}

Jump to

Keyboard shortcuts

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