added servers model, controller and routes

pull/2/head
Nilo Roberto da Cruz Paim 2022-12-10 19:05:40 -03:00
parent 58dbb7ca71
commit 701570cdb6
5 changed files with 88 additions and 1 deletions

View File

@ -0,0 +1,59 @@
package controllers
import (
"api/database"
"api/models"
"api/utils"
"github.com/gofiber/fiber/v2"
)
// AddServer - Adds a server to the database
func AddServer(c *fiber.Ctx) error {
var data map[string]string
if err := c.BodyParser(&data); err != nil {
return fiber.ErrBadRequest
}
if data["name"] == "" || data["ip"] == "" {
return fiber.ErrBadRequest
}
server := models.Server{
Name: data["name"],
IP: data["ip"],
}
database.DB.Create(&server)
if server.Id == 0 {
return fiber.ErrNotAcceptable
}
return c.JSON(fiber.Map{
"seerver": server,
})
}
// GetAllServers - Returns all servers
func GetAllServers(c *fiber.Ctx) error {
var servers []models.Server
_, err := utils.ProcessToken(c)
if err != nil {
return fiber.ErrUnauthorized
}
database.DB.Find(&servers)
if len(servers) == 0 {
return fiber.ErrNotFound
}
return c.JSON(fiber.Map{
"servers": servers,
})
}

View File

@ -52,6 +52,24 @@ func ConnectDB() error {
return result
}
if result := db.AutoMigrate(&models.Server{}); result != nil {
return result
}
// Count how many servers we have on the database. If none, creates our initial server.
var servers []models.Server
db.Find(&servers)
if len(servers) == 0 {
server := models.Server{
Name: "Pcast Main Server",
IP: "177.153.50.98",
}
db.Create(&server)
}
// Count how many users we have on the database. If none, creates our initial admin user.
var users []models.User

View File

@ -1,5 +1,5 @@
package globals
var (
API_VERSION = "1.0.13"
API_VERSION = "1.0.14"
)

7
models/servers.go Normal file
View File

@ -0,0 +1,7 @@
package models
type Server struct {
Id uint `gorm:"primary key" json:"id"`
Name string `gorm:"size:40;not null" json:"name"`
IP string `gorm:"size:40;not null" json:"ip"`
}

View File

@ -29,6 +29,9 @@ func Setup(app *fiber.App) {
SigningKey: []byte(os.Getenv("API_SECRET")),
}))
protected.Get("servers", controllers.GetAllServers)
protected.Post("server", controllers.AddServer)
protected.Get("user", controllers.GetOwnUser)
protected.Get("users", controllers.GetAllUsers)
protected.Post("user", controllers.AddUser)