package main import ( jwtware "github.com/gofiber/contrib/jwt" "github.com/gofiber/fiber/v2" "github.com/sirupsen/logrus" "reader/internal/handlers" ) func main() { //port := 8080 // //http.HandleFunc("GET /api/v1/download/", handlers.Download) // example request: {"date": "07-03-2025", "start_time": "16-43", "end_time": "16-44"} //http.HandleFunc("GET /api/v1/hls/", handlers.HLS) //log.Println("Starting server on:") //log.Printf("Serving on HTTP port: %d\n", port) // //log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", port), nil)) //go metrics.Metrics() //logger.StartMainLogger(config.Local, "reader") // //// Check if the data folder in the directory. //homeDir, err := os.UserHomeDir() //if err != nil { //} //config.DirData = fmt.Sprintf("%s/%s/vod", homeDir, config.Local) // //err = unpacker.CreateVideo() //if err != nil { // logger.Log.Error("failed to create flow", zap.Error(err)) //} app := fiber.New() authStorage := &handlers.AuthStorage{map[string]handlers.User{}} authHandler := &handlers.AuthHandler{Storage: authStorage} userHandler := &handlers.UserHandler{Storage: authStorage} // Группа обработчиков, которые доступны неавторизованным пользователям publicGroup := app.Group("") publicGroup.Post("/register", authHandler.Register) publicGroup.Post("/login", authHandler.Login) // Группа обработчиков, которые требуют авторизации authorizedGroup := app.Group("") authorizedGroup.Use(jwtware.New(jwtware.Config{ SigningKey: jwtware.SigningKey{ Key: handlers.JwtSecretKey, }, ContextKey: handlers.ContextKeyUser, })) authorizedGroup.Get("/profile", userHandler.Profile) // API Flussonic Media Server adapted handlers. authorizedGroup.Get("/vods/:id/:res/:file", handlers.SingleVodsHandler) authorizedGroup.Delete("/vods/:id/:res/:file", handlers.DelSingleVodsHandler) authorizedGroup.Get("/vods/:id/files", handlers.ListFilesVodsHandler) authorizedGroup.Delete("/vods/:id", handlers.DelVodsHandler) authorizedGroup.Get("/vods/:id", handlers.ConfigVodsHandler) authorizedGroup.Get("/vods", handlers.ListVodsHandler) logrus.Fatal(app.Listen(":8100")) }