donat-widget/cmd/main.go
2024-10-29 22:07:14 +05:00

56 lines
1.4 KiB
Go

package main
import (
"context"
"donat-widget/internal/app/http"
"donat-widget/internal/config"
"donat-widget/pkg/logger"
)
import (
"donat-widget/infrastructure/pg"
"donat-widget/infrastructure/weed"
AuthClient "donat-widget/pkg/api/auth"
PaymentClient "donat-widget/pkg/api/payment"
)
import (
DonatRepo "donat-widget/internal/repository/donat"
TargetRepo "donat-widget/internal/repository/target"
WidgetRepo "donat-widget/internal/repository/widget"
DonatService "donat-widget/internal/service/donat"
TargetService "donat-widget/internal/service/target"
WidgetService "donat-widget/internal/service/widget"
)
func main() {
logger.New()
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)
authClient := AuthClient.New(cfg.AuthService.Host, cfg.AuthService.Port)
// REPOSITORIES
widgetRepo := WidgetRepo.New(db, storage)
donatRepo := DonatRepo.New(db)
targetRepo := TargetRepo.New(db)
// SERVICES
widgetService := WidgetService.New(widgetRepo)
donatService := DonatService.New(donatRepo, widgetRepo, paymentClient)
targetService := TargetService.New(targetRepo)
http.NewApp(
db,
widgetService,
donatService,
targetService,
authClient,
)
}