52 lines
1.8 KiB
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)
|
|
}
|
|
}
|