MiniappGoService/cmd/main.go

52 lines
1.8 KiB
Go

package main
import (
"log"
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/config"
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/infrastructure/botService"
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/internal/infrastructure/grpcClient"
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/pkg/logger"
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/pkg/minioDB"
"gitea.cybertalant.ru/VisionCareerMiniapp/MiniappGoService/pkg/pgDB"
)
func main() {
// Load config for app
if err := config.Load(); err != nil {
log.Fatalln("Error when load config: ", err)
}
// Initialize the logger
logger, err := logger.Init(config.Config.App.Mode)
if err != nil {
log.Fatalln("Error when init logger: ", err)
}
// Connect to PostgreSQL
pgDB, err := pgDB.Conn(
config.Config.Postgre.Host, config.Config.Postgre.User, config.Config.Postgre.Password,
config.Config.Postgre.Name, config.Config.Postgre.Port, config.Config.Postgre.SSLmode,
)
if err != nil {
log.Fatalln("Error when connect to PostgreSQL: ", err)
}
defer pgDB.DB.Close()
// Connect to MinIO
minioDB, err := minioDB.New(
config.Config.Minio.Endpoint, config.Config.Minio.User,
config.Config.Minio.Password, config.Config.Minio.SSLmode,
)
if err != nil {
log.Fatalln("Error when connect to MinIO: ", err)
}
// Init support API HTTP client
supportAPI, err := grpcClient.Init(config.Config.Integrations.SupportApiUrl, config.Config.Tokens.SupportApiKey)
if err != nil {
log.Fatalln("Error when connect to Support API by gRPC: ", err)
}
defer supportAPI.Close()
// Start Telegram Bot service
if err := botService.Start(config.Config.Bot, logger, pgDB, minioDB, supportAPI); err != nil {
log.Fatalln("Error when start the Telegram Bot: ", err)
}
}