package main import ( "fmt" "os" "git.insit.tech/psa/rtsp_reader-writer/reader/internal/config" "git.insit.tech/psa/rtsp_reader-writer/reader/internal/handlers" logger "git.insit.tech/psa/rtsp_reader-writer/reader/internal/log" "git.insit.tech/psa/rtsp_reader-writer/reader/internal/metrics" jwtware "github.com/gofiber/contrib/jwt" "github.com/gofiber/fiber/v2" "github.com/sirupsen/logrus" ) 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{Users: 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")) }