donat-widget/cmd/main.go
2024-10-20 22:42:26 +05:00

46 lines
1.1 KiB
Go

package main
import (
"context"
"donat-widget/internal/app/http"
"donat-widget/internal/config"
DonatRepo "donat-widget/internal/repository/donat"
DonatService "donat-widget/internal/service/donat"
)
import (
"donat-widget/infrastructure/pg"
"donat-widget/infrastructure/weed"
PaymentClient "donat-widget/pkg/api/payment"
)
import (
WidgetRepo "donat-widget/internal/repository/widget"
WidgetService "donat-widget/internal/service/widget"
)
func main() {
cfg := config.Init()
// INFRASTRUCTURE
db := pg.NewPgPool(context.Background(), cfg.Db.Username, cfg.Db.Password, cfg.Db.Host, cfg.Db.Port, cfg.Db.DBName)
storage := weed.NewWeed(cfg.Storage.Filer, cfg.Storage.Master)
// CLIENTS
paymentClient := PaymentClient.New(cfg.PaymentService.Host, cfg.PaymentService.Port)
// REPOSITORIES
widgetRepo := WidgetRepo.New(db, storage)
donatRepo := DonatRepo.New(db)
// SERVICES
widgetService := WidgetService.New(widgetRepo, donatRepo)
donatService := DonatService.New(donatRepo, widgetRepo, paymentClient)
http.NewApp(
db,
widgetService,
donatService,
)
}