diff --git a/deploy/shoppingbasket/development/config.local.yml b/deploy/shoppingbasket/development/config.local.yml index 71ce5fed..62d6ed1d 100644 --- a/deploy/shoppingbasket/development/config.local.yml +++ b/deploy/shoppingbasket/development/config.local.yml @@ -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 diff --git a/domain/shoppingbasket/repository/mysql.go b/domain/shoppingbasket/repository/mysql.go index e92e0c45..99fce75c 100644 --- a/domain/shoppingbasket/repository/mysql.go +++ b/domain/shoppingbasket/repository/mysql.go @@ -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) { diff --git a/shoppingbasketapp/app.go b/shoppingbasketapp/app.go index 6fca62d0..8e4a28f8 100644 --- a/shoppingbasketapp/app.go +++ b/shoppingbasketapp/app.go @@ -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) diff --git a/shoppingbasketapp/config.go b/shoppingbasketapp/config.go index 91915263..922f3e84 100644 --- a/shoppingbasketapp/config.go +++ b/shoppingbasketapp/config.go @@ -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"`