66 lines
2.2 KiB
Go
66 lines
2.2 KiB
Go
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"))
|
|
}
|