appconf

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: May 5, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const ServiceName = "game-library-api"

ServiceName - service name

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthAPI

type AuthAPI struct {
	Address string        `mapstructure:"AUTHAPI_ADDRESS"`
	Timeout time.Duration `mapstructure:"AUTHAPI_TIMEOUT"`
}

AuthAPI represents settings for AuthAPI gRPC client

type Cfg

type Cfg struct {
	Log       Log       `mapstructure:",squash"`
	DB        DB        `mapstructure:",squash"`
	Web       Web       `mapstructure:",squash"`
	Jaeger    Jaeger    `mapstructure:",squash"`
	IGDB      IGDB      `mapstructure:",squash"`
	Scheduler Scheduler `mapstructure:",squash"`
	Redis     Redis     `mapstructure:",squash"`
	Graylog   Graylog   `mapstructure:",squash"`
	S3        S3        `mapstructure:",squash"`
	OpenAI    OpenAI    `mapstructure:",squash"`
	AuthAPI   AuthAPI   `mapstructure:",squash"`
}

Cfg - app configuration

func Get

func Get() (*Cfg, error)

Get returns application config

func (*Cfg) Validate

func (cfg *Cfg) Validate() error

Validate validates the config

type DB

type DB struct {
	DSN string `mapstructure:"DB_DSN"`
}

DB represents settings for database

type Graylog

type Graylog struct {
	Address string `mapstructure:"GRAYLOG_ADDR"`
}

Graylog represents settings related to Graylog integration

type IGDB

type IGDB struct {
	ClientID     string        `mapstructure:"IGDB_CLIENT_ID"`
	ClientSecret string        `mapstructure:"IGDB_CLIENT_SECRET"`
	TokenURL     string        `mapstructure:"IGDB_TOKEN_URL"`
	APIURL       string        `mapstructure:"IGDB_API_URL"`
	Timeout      time.Duration `mapstructure:"IGDB_API_TIMEOUT"`
}

IGDB represents settings for IGDB client

type Jaeger

type Jaeger struct {
	OTLPEndpoint string `mapstructure:"JAEGER_OTLP_ENDPOINT"`
}

Jaeger represents settings for Jaeger OTLP trace export

type Log

type Log struct {
	Level string `mapstructure:"LOG_LEVEL"`
}

Log represents settings for logging

type OpenAI

type OpenAI struct {
	APIKey          string        `mapstructure:"OPENAI_API_KEY"`
	APIURL          string        `mapstructure:"OPENAI_API_URL"`
	ModerationModel string        `mapstructure:"OPENAI_MODERATION_MODEL"`
	VisionModel     string        `mapstructure:"OPENAI_VISION_MODEL"`
	Timeout         time.Duration `mapstructure:"OPENAI_API_TIMEOUT"`
}

OpenAI represents settings for OpenAI client

type Redis

type Redis struct {
	Address  string        `mapstructure:"REDIS_ADDR"`
	Password string        `mapstructure:"REDIS_PASSWORD"`
	TTL      time.Duration `mapstructure:"REDIS_TTL"`
}

Redis represents settings for Redis client

type S3

type S3 struct {
	Region          string        `mapstructure:"S3_REGION"`
	AccessKeyID     string        `mapstructure:"S3_ACCESS_KEY_ID"`
	SecretAccessKey string        `mapstructure:"S3_SECRET_ACCESS_KEY"`
	Endpoint        string        `mapstructure:"S3_ENDPOINT"`
	BucketName      string        `mapstructure:"S3_BUCKET_NAME"`
	CDNBaseURL      string        `mapstructure:"S3_CDN_BASE_URL"`
	Timeout         time.Duration `mapstructure:"S3_TIMEOUT"`
}

S3 represents settings for S3 client

type Scheduler

type Scheduler struct {
	FetchIGDBGames      string `mapstructure:"SCHED_FETCH_IGDB_GAMES"`
	UpdateTrendingIndex string `mapstructure:"SCHED_UPDATE_TRENDING_INDEX"`
	UpdateGameInfo      string `mapstructure:"SCHED_UPDATE_GAME_INFO"`
	ProcessModeration   string `mapstructure:"SCHED_PROCESS_MODERATION"`
}

Scheduler represents settings for task scheduler

type Web

type Web struct {
	HTTPAddress       string        `mapstructure:"APP_HTTP_ADDRESS"`
	GRPCAddress       string        `mapstructure:"APP_GRPC_ADDRESS"`
	DebugAddress      string        `mapstructure:"APP_DEBUG_ADDRESS"`
	ReadTimeout       time.Duration `mapstructure:"APP_READTIMEOUT"`
	WriteTimeout      time.Duration `mapstructure:"APP_WRITETIMEOUT"`
	AllowedCORSOrigin string        `mapstructure:"APP_ALLOWEDCORSORIGIN"`
}

Web represents settings for to web server

Jump to

Keyboard shortcuts

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