Files
auth-service/cmd/main.go

64 lines
2.0 KiB
Go

package main
import (
"authorization/internal"
"authorization/internal/config"
"authorization/internal/handler"
"authorization/internal/repository"
"authorization/internal/service"
"os"
"github.com/golang-migrate/migrate/v4"
_ "github.com/golang-migrate/migrate/v4/database/postgres" // Импорт драйвера PostgreSQL
_ "github.com/golang-migrate/migrate/v4/source/file" // Импорт файлового драйвера
"github.com/joho/godotenv"
"github.com/sirupsen/logrus"
)
func main() {
cfg, err := initConfigs()
if err != nil {
logrus.Fatalf("Ошибка считывания конфига: %s", err.Error())
}
if err := godotenv.Load(); err != nil {
logrus.Fatalf("Ошибка загрузки конфига %s", err.Error())
}
print(cfg.Token.AccessToken.SecretWord)
print(cfg.Token.RefreshToken.SecretWord)
db, err := repository.NewPostgresDB(repository.Config{
Host: cfg.DB.Host,
Port: cfg.DB.Port,
Username: cfg.DB.Username,
Password: os.Getenv("DB_PASSWORD"),
DBName: cfg.DB.DBname,
SSLMode: cfg.DB.Sslmode,
})
if err != nil {
logrus.Fatalf("Ошибка подключения к базе данных %s", err.Error())
}
m, err := migrate.New(
"file://schema",
"postgres://postgres:postgres@localhost:5432/authorization?sslmode=disable")
if err != nil {
logrus.Fatalf("Ошибка инициализации миграций: %s", err.Error())
}
// Применение миграций
if err := m.Up(); err != nil && err != migrate.ErrNoChange {
logrus.Fatalf("Ошибка применения миграций: %s", err.Error())
}
repository := repository.NewRepository(db)
services := service.NewServices(repository)
handlers := handler.NewHandler(services)
srv := new(internal.Server)
if err := srv.Run(cfg.Server.Port, handlers.InitRoutes()); err != nil {
logrus.Fatalf("Ошибка запуска сервера: %s", err.Error())
}
}
func initConfigs() (*config.Config, error) {
return config.LoadConfig("configs/application.yaml")
}