yumi-golang/cmd/api/main.go

43 lines
1.1 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)
router := invitehttp.NewRouter(cfg, repository, javaClient, inviteService, baishunService)
log.Printf("chatapp3-golang invite api listening on %s", cfg.ListenAddr)
if err := router.Run(cfg.ListenAddr); err != nil {
log.Fatalf("run server failed: %v", err)
}
}