refactor app.go file

This commit is contained in:
mzfarshad 2026-05-04 22:50:26 +03:30
parent 7df63bd36f
commit 12af65bcd4
4 changed files with 18 additions and 3 deletions

View File

@ -4,6 +4,13 @@ redis:
password: ""
db: 0
mysql:
port: 3306
host: localhost
db_name: niki_db
username: niki
password: nikiappt0lk2o20
repo:
cache_kart_key_prefix: "shopping-basket-cart:user_id"
cache_ttl: 864000s # 24h

View File

@ -17,8 +17,8 @@ type DB struct {
config Config
}
func NewDB(db *mysql.DB) DB {
return DB{db: db}
func NewDB(db *mysql.DB, cfg Config) DB {
return DB{db: db, config: cfg}
}
func (d DB) getCart(ctx context.Context, tx *sql.Tx, query string, by types.ID) (entity.Cart, error) {

View File

@ -6,6 +6,7 @@ import (
"git.gocasts.ir/ebhomengo/niki/adapter/redis"
"git.gocasts.ir/ebhomengo/niki/domain/shoppingbasket/repository"
"git.gocasts.ir/ebhomengo/niki/domain/shoppingbasket/service"
mysql2 "git.gocasts.ir/ebhomengo/niki/pkg/database/mysql"
"git.gocasts.ir/ebhomengo/niki/pkg/httpserver"
"git.gocasts.ir/ebhomengo/niki/pkg/logger"
"git.gocasts.ir/ebhomengo/niki/shoppingbasketapp/delivery/http"
@ -27,7 +28,12 @@ type Application struct {
func Setup(ctx context.Context, cfg Config) (Application, error) {
adapter := redis.New(cfg.Redis)
repo := repository.New(adapter.Client(), cfg.Repo)
cache := repository.NewCache(adapter, cfg.Repo)
mysql := mysql2.New(cfg.Mysql)
db := repository.NewDB(mysql, cfg.Repo)
repo := repository.New(db, cache)
validator := service.NewValidate()
svc := service.New(validator, repo)

View File

@ -3,12 +3,14 @@ package shoppingbasketapp
import (
"git.gocasts.ir/ebhomengo/niki/adapter/redis"
"git.gocasts.ir/ebhomengo/niki/domain/shoppingbasket/repository"
"git.gocasts.ir/ebhomengo/niki/pkg/database/mysql"
"git.gocasts.ir/ebhomengo/niki/pkg/httpserver"
logger "git.gocasts.ir/ebhomengo/niki/pkg/logger"
)
type Config struct {
Redis redis.Config `koanf:"redis" json:"redis"`
Mysql mysql.Config `koanf:"mysql" json:"mysql"`
Repo repository.Config `koanf:"repo" json:"repo"`
HTTPServer httpserver.Config `koanf:"http_server" json:"http_server"`
Logger logger.Config `koanf:"logger" json:"logger"`