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") }