added check stream existence
parent
530a696b8c
commit
59af8c0c3a
|
|
@ -13,13 +13,9 @@ import (
|
||||||
"golang.org/x/crypto/bcrypt"
|
"golang.org/x/crypto/bcrypt"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Version(c *fiber.Ctx) error {
|
// Login - Login. Returns a JWT token on the response body
|
||||||
return c.JSON(fiber.Map{
|
|
||||||
"version": "1.0.3",
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
func Login(c *fiber.Ctx) error {
|
func Login(c *fiber.Ctx) error {
|
||||||
|
|
||||||
var data map[string]string
|
var data map[string]string
|
||||||
|
|
||||||
if err := c.BodyParser(&data); err != nil {
|
if err := c.BodyParser(&data); err != nil {
|
||||||
|
|
@ -71,7 +67,9 @@ func Login(c *fiber.Ctx) error {
|
||||||
"token": token})
|
"token": token})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Register/AdUser - Adds or register a user to the database
|
||||||
func AddUser(c *fiber.Ctx) error {
|
func AddUser(c *fiber.Ctx) error {
|
||||||
|
|
||||||
var data map[string]string
|
var data map[string]string
|
||||||
|
|
||||||
if err := c.BodyParser(&data); err != nil {
|
if err := c.BodyParser(&data); err != nil {
|
||||||
|
|
@ -111,6 +109,7 @@ func AddUser(c *fiber.Ctx) error {
|
||||||
return c.JSON(user)
|
return c.JSON(user)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetOwnUser - Returns the current user
|
||||||
func GetOwnUser(c *fiber.Ctx) error {
|
func GetOwnUser(c *fiber.Ctx) error {
|
||||||
|
|
||||||
var user models.User
|
var user models.User
|
||||||
|
|
@ -135,7 +134,9 @@ func GetOwnUser(c *fiber.Ctx) error {
|
||||||
return c.JSON(user)
|
return c.JSON(user)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAllUsers - Returns all users
|
||||||
func GetAllUsers(c *fiber.Ctx) error {
|
func GetAllUsers(c *fiber.Ctx) error {
|
||||||
|
|
||||||
var users []models.User
|
var users []models.User
|
||||||
|
|
||||||
_, err := utils.ProcessToken(c)
|
_, err := utils.ProcessToken(c)
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,7 @@ func AddEvent(c *fiber.Ctx) error {
|
||||||
Name: data["name"],
|
Name: data["name"],
|
||||||
UserId: user.Id,
|
UserId: user.Id,
|
||||||
User: user,
|
User: user,
|
||||||
|
Channel: user.Channel,
|
||||||
ExpectedDate: startdt,
|
ExpectedDate: startdt,
|
||||||
EventType: data["eventtype"],
|
EventType: data["eventtype"],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
package controllers
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
func CheckStream(c *fiber.Ctx) error {
|
||||||
|
var data map[string]string
|
||||||
|
|
||||||
|
if err := c.BodyParser(&data); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var fil *os.File
|
||||||
|
|
||||||
|
defer fil.Close()
|
||||||
|
|
||||||
|
fil, err := os.Open("/var/nginx/hls/" + data["channel"] + "/index.m3u8")
|
||||||
|
if errors.Is(err, os.ErrNotExist) {
|
||||||
|
c.Status(fiber.StatusNotFound)
|
||||||
|
return c.JSON(fiber.Map{
|
||||||
|
"message": "Stream não existente",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
c.Status(fiber.StatusOK)
|
||||||
|
return c.JSON(fiber.Map{
|
||||||
|
"message": "Stream existente",
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package controllers
|
||||||
|
|
||||||
|
import "github.com/gofiber/fiber/v2"
|
||||||
|
|
||||||
|
func Version(c *fiber.Ctx) error {
|
||||||
|
return c.JSON(fiber.Map{
|
||||||
|
"version": "1.0.4",
|
||||||
|
})
|
||||||
|
}
|
||||||
70
main.go
70
main.go
|
|
@ -1,36 +1,34 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"api/database"
|
"api/database"
|
||||||
"api/routes"
|
"api/routes"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/gofiber/fiber/v2"
|
"github.com/gofiber/fiber/v2"
|
||||||
"github.com/gofiber/fiber/v2/middleware/cors"
|
"github.com/gofiber/fiber/v2/middleware/cors"
|
||||||
"github.com/gofiber/fiber/v2/middleware/logger"
|
"github.com/gofiber/fiber/v2/middleware/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
app := fiber.New(fiber.Config{
|
app := fiber.New(fiber.Config{
|
||||||
StrictRouting: false,
|
StrictRouting: false,
|
||||||
DisableStartupMessage: true,
|
DisableStartupMessage: true,
|
||||||
})
|
})
|
||||||
|
|
||||||
app.Use(cors.New(cors.Config{
|
app.Use(cors.New(cors.Config{
|
||||||
AllowCredentials: true,
|
AllowCredentials: true,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
app.Use(logger.New())
|
app.Use(logger.New())
|
||||||
|
|
||||||
app.Static("/", "./frontend")
|
if err := database.ConnectDB(); err != nil {
|
||||||
|
panic("Could not connect to database")
|
||||||
if err := database.ConnectDB(); err != nil {
|
}
|
||||||
panic("Could not connect to database")
|
|
||||||
}
|
routes.Setup(app)
|
||||||
|
|
||||||
routes.Setup(app)
|
log.Println("Server started in port " + os.Getenv("API_PORT"))
|
||||||
|
app.Listen(":" + os.Getenv("API_PORT"))
|
||||||
log.Println("Server started in port " + os.Getenv("API_PORT"))
|
}
|
||||||
app.Listen(":" + os.Getenv("API_PORT"))
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ type Event struct {
|
||||||
Description string `gorm:"not null" json:"description"`
|
Description string `gorm:"not null" json:"description"`
|
||||||
ExpectedDate time.Time `gorm:"not null" json:"startDt"`
|
ExpectedDate time.Time `gorm:"not null" json:"startDt"`
|
||||||
UserId uint `gorm:"size:40;not null" json:"user"`
|
UserId uint `gorm:"size:40;not null" json:"user"`
|
||||||
|
Channel string `gorm:"size:40;not null" json:"channel"`
|
||||||
User User
|
User User
|
||||||
EventType string `gorm:"size:1;not null;default:O" json:"eventtype"` // O = Open, C = Closed
|
EventType string `gorm:"size:1;not null;default:O" json:"eventtype"` // O = Open, C = Closed
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import (
|
||||||
jwtware "github.com/gofiber/jwt/v3"
|
jwtware "github.com/gofiber/jwt/v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// Setup sets up the routes
|
||||||
func Setup(app *fiber.App) {
|
func Setup(app *fiber.App) {
|
||||||
|
|
||||||
app.Get("/version", controllers.Version)
|
app.Get("/version", controllers.Version)
|
||||||
|
|
@ -16,6 +17,9 @@ func Setup(app *fiber.App) {
|
||||||
app.Post("/login", controllers.Login)
|
app.Post("/login", controllers.Login)
|
||||||
app.Post("/register", controllers.AddUser)
|
app.Post("/register", controllers.AddUser)
|
||||||
|
|
||||||
|
app.Post("/check", controllers.CheckStream)
|
||||||
|
|
||||||
|
// Protected routes. Needs login before.
|
||||||
protected := app.Group("/")
|
protected := app.Group("/")
|
||||||
protected.Use(jwtware.New(jwtware.Config{
|
protected.Use(jwtware.New(jwtware.Config{
|
||||||
SigningKey: []byte(os.Getenv("API_SECRET")),
|
SigningKey: []byte(os.Getenv("API_SECRET")),
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue