added check stream existence
parent
530a696b8c
commit
59af8c0c3a
|
|
@ -13,13 +13,9 @@ import (
|
|||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
func Version(c *fiber.Ctx) error {
|
||||
return c.JSON(fiber.Map{
|
||||
"version": "1.0.3",
|
||||
})
|
||||
}
|
||||
|
||||
// Login - Login. Returns a JWT token on the response body
|
||||
func Login(c *fiber.Ctx) error {
|
||||
|
||||
var data map[string]string
|
||||
|
||||
if err := c.BodyParser(&data); err != nil {
|
||||
|
|
@ -71,7 +67,9 @@ func Login(c *fiber.Ctx) error {
|
|||
"token": token})
|
||||
}
|
||||
|
||||
// Register/AdUser - Adds or register a user to the database
|
||||
func AddUser(c *fiber.Ctx) error {
|
||||
|
||||
var data map[string]string
|
||||
|
||||
if err := c.BodyParser(&data); err != nil {
|
||||
|
|
@ -111,6 +109,7 @@ func AddUser(c *fiber.Ctx) error {
|
|||
return c.JSON(user)
|
||||
}
|
||||
|
||||
// GetOwnUser - Returns the current user
|
||||
func GetOwnUser(c *fiber.Ctx) error {
|
||||
|
||||
var user models.User
|
||||
|
|
@ -135,7 +134,9 @@ func GetOwnUser(c *fiber.Ctx) error {
|
|||
return c.JSON(user)
|
||||
}
|
||||
|
||||
// GetAllUsers - Returns all users
|
||||
func GetAllUsers(c *fiber.Ctx) error {
|
||||
|
||||
var users []models.User
|
||||
|
||||
_, err := utils.ProcessToken(c)
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ func AddEvent(c *fiber.Ctx) error {
|
|||
Name: data["name"],
|
||||
UserId: user.Id,
|
||||
User: user,
|
||||
Channel: user.Channel,
|
||||
ExpectedDate: startdt,
|
||||
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
|
||||
|
||||
import (
|
||||
"api/database"
|
||||
"api/routes"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/gofiber/fiber/v2/middleware/cors"
|
||||
"github.com/gofiber/fiber/v2/middleware/logger"
|
||||
)
|
||||
|
||||
func main() {
|
||||
app := fiber.New(fiber.Config{
|
||||
StrictRouting: false,
|
||||
DisableStartupMessage: true,
|
||||
})
|
||||
|
||||
app.Use(cors.New(cors.Config{
|
||||
AllowCredentials: true,
|
||||
}))
|
||||
|
||||
app.Use(logger.New())
|
||||
|
||||
app.Static("/", "./frontend")
|
||||
|
||||
if err := database.ConnectDB(); err != nil {
|
||||
panic("Could not connect to database")
|
||||
}
|
||||
|
||||
routes.Setup(app)
|
||||
|
||||
log.Println("Server started in port " + os.Getenv("API_PORT"))
|
||||
app.Listen(":" + os.Getenv("API_PORT"))
|
||||
}
|
||||
package main
|
||||
|
||||
import (
|
||||
"api/database"
|
||||
"api/routes"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/gofiber/fiber/v2/middleware/cors"
|
||||
"github.com/gofiber/fiber/v2/middleware/logger"
|
||||
)
|
||||
|
||||
func main() {
|
||||
app := fiber.New(fiber.Config{
|
||||
StrictRouting: false,
|
||||
DisableStartupMessage: true,
|
||||
})
|
||||
|
||||
app.Use(cors.New(cors.Config{
|
||||
AllowCredentials: true,
|
||||
}))
|
||||
|
||||
app.Use(logger.New())
|
||||
|
||||
if err := database.ConnectDB(); err != nil {
|
||||
panic("Could not connect to database")
|
||||
}
|
||||
|
||||
routes.Setup(app)
|
||||
|
||||
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"`
|
||||
ExpectedDate time.Time `gorm:"not null" json:"startDt"`
|
||||
UserId uint `gorm:"size:40;not null" json:"user"`
|
||||
Channel string `gorm:"size:40;not null" json:"channel"`
|
||||
User User
|
||||
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"
|
||||
)
|
||||
|
||||
// Setup sets up the routes
|
||||
func Setup(app *fiber.App) {
|
||||
|
||||
app.Get("/version", controllers.Version)
|
||||
|
|
@ -16,6 +17,9 @@ func Setup(app *fiber.App) {
|
|||
app.Post("/login", controllers.Login)
|
||||
app.Post("/register", controllers.AddUser)
|
||||
|
||||
app.Post("/check", controllers.CheckStream)
|
||||
|
||||
// Protected routes. Needs login before.
|
||||
protected := app.Group("/")
|
||||
protected.Use(jwtware.New(jwtware.Config{
|
||||
SigningKey: []byte(os.Getenv("API_SECRET")),
|
||||
|
|
|
|||
Loading…
Reference in New Issue