forked from ebhomengo/niki
refactor app.go file
This commit is contained in:
parent
7df63bd36f
commit
12af65bcd4
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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"`
|
||||
|
|
|
|||
Loading…
Reference in New Issue