49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"chatapp3-golang/internal/config"
|
|
invitehttp "chatapp3-golang/internal/http"
|
|
"chatapp3-golang/internal/integration"
|
|
"chatapp3-golang/internal/repo"
|
|
"chatapp3-golang/internal/service"
|
|
"context"
|
|
"log"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
cfg := config.Load()
|
|
repository, err := repo.New(cfg)
|
|
if err != nil {
|
|
log.Fatalf("init repository failed: %v", err)
|
|
}
|
|
|
|
if cfg.AutoMigrate {
|
|
if err := repository.AutoMigrate(); err != nil {
|
|
log.Fatalf("auto migrate failed: %v", err)
|
|
}
|
|
}
|
|
|
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
|
defer cancel()
|
|
if err := repository.Ping(ctx); err != nil {
|
|
log.Fatalf("ping dependencies failed: %v", err)
|
|
}
|
|
|
|
javaClient := integration.New(cfg)
|
|
inviteService := service.NewInviteService(cfg, repository, javaClient)
|
|
baishunService := service.NewBaishunService(cfg, repository, javaClient)
|
|
registerRewardService := service.NewRegisterRewardService(cfg, repository, javaClient)
|
|
workerCtx, workerCancel := context.WithCancel(context.Background())
|
|
defer workerCancel()
|
|
if err := registerRewardService.Start(workerCtx); err != nil {
|
|
log.Fatalf("start register reward consumer failed: %v", err)
|
|
}
|
|
router := invitehttp.NewRouter(cfg, repository, javaClient, inviteService, baishunService)
|
|
|
|
log.Printf("chatapp3-golang api listening on %s", cfg.ListenAddr)
|
|
if err := router.Run(cfg.ListenAddr); err != nil {
|
|
log.Fatalf("run server failed: %v", err)
|
|
}
|
|
}
|