2025-04-14 11:51:02 +05:00

72 lines
2.4 KiB
Go

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