/
Arsinenko
/
CompClubAPI_Go
Обзор
Документация
Войти
/
Arsinenko
/
CompClubAPI_Go
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
main.go
87 строк
2 KB
Arsinenko
Working space update
17 ноя 2025, 17:41
17 ноя 2025, 17:41
d647065
Код
Авторство
О чём код?
package main import ( "CompClubAPI/internal/database/gen" "CompClubAPI/internal/handlers" "CompClubAPI/internal/services" "database/sql" "fmt" "net/http" "os" "time" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" _ "github.com/lib/pq" ) func InitDb() *sql.DB { connStr := os.Getenv("DATABASE_URL") db, err := sql.Open("postgres", connStr) if err != nil { panic(err) } if err := db.Ping(); err != nil { panic(err) } fmt.Println(`database connected`) return db } func CreateInitialUser(s services.UserService) { _, err := s.GetUser("admin") if err != nil { _, err := s.CreateUser(services.CreateUserRequest{ Login: "admin", Role: "admin", Password: "admin", Balance: "0", }) if err != nil { return } } } func main() { db := InitDb() queries := gen.New(db) userService := services.NewUserService(queries) clubService := services.NewClubService(queries) tariffService := services.NewTariffService(queries) bookingService := services.NewBookingService(queries) equipmentService := services.NewEquipmentService(queries) clubStatsService := services.NewClubStatsService(queries) workingSpaceService := services.NewWorkingSpaceService(queries) CreateInitialUser(userService) r := gin.Default() r.Use(cors.New(cors.Config{ // ❌ УБЕРИТЕ AllowAllOrigins: true //AllowOrigins: []string{"http://localhost:63343"}, // ← ваш фронтенд AllowAllOrigins: true, AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"}, AllowHeaders: []string{"Origin", "Content-Length", "Content-Type", "Authorization", "X-Ijt"}, // ⚠️ "Access-Control-Allow-Origin" НЕ нужен в AllowHeaders — он response-заголовок! ExposeHeaders: []string{"Content-Length"}, AllowCredentials: true, MaxAge: 12 * time.Hour, })) r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Привет, Gin!") }) handlers.InitUserRoutes(r.Group("/users"), userService) handlers.InitClubRouters(r.Group("/clubs"), clubService) handlers.InitTariffRouters(r.Group("/tariffs"), tariffService) handlers.InitBookingRouters(r.Group("/bookings"), bookingService) handlers.InitializeEquipmentHandlers(r.Group("/equipment"), equipmentService) handlers.InitClubStatsRouters(r.Group("/stats"), clubStatsService) handlers.InitWorkingSpaceHandler(r.Group("/working-spaces"), workingSpaceService) err := r.Run(":8080") if err != nil { return } }