website/api/util/utils.go

70 lines
1.4 KiB
Go
Raw Normal View History

2023-11-12 17:43:23 +03:00
package util
import (
"log"
"math/rand"
"net/http"
"strings"
2023-11-12 17:43:23 +03:00
"github.com/gofiber/fiber/v2"
)
func TitleToID(name string) string {
return strings.ToLower(strings.ReplaceAll(name, " ", ""))
}
2023-11-12 17:43:23 +03:00
func CreateToken() string {
s := make([]byte, 32)
for i := 0; i < 32; i++ {
s[i] = byte(65 + rand.Intn(25))
}
return string(s)
2023-11-12 17:43:23 +03:00
}
func ErrorCheck(err error, c *fiber.Ctx) bool {
if err != nil {
log.Printf("Server error: '%s' on %s\n", err, c.Path())
return true
}
return false
}
2023-11-12 17:43:23 +03:00
func ErrorJSON(error string) fiber.Map {
return fiber.Map{
"error": error,
}
2023-11-12 17:43:23 +03:00
}
func GetIP(c *fiber.Ctx) string {
if c.Get("X-Real-IP") != "" {
return strings.Clone(c.Get("X-Real-IP"))
}
return c.IP()
2023-11-12 17:43:23 +03:00
}
func ErrServer(c *fiber.Ctx) error {
return c.Status(http.StatusInternalServerError).JSON(ErrorJSON("Server error"))
2023-11-12 17:43:23 +03:00
}
func ErrExists(c *fiber.Ctx) error {
return c.Status(http.StatusConflict).JSON(ErrorJSON("Entry already exists"))
2023-11-12 17:43:23 +03:00
}
func ErrBadData(c *fiber.Ctx) error {
return c.Status(http.StatusBadRequest).JSON(ErrorJSON("Provided data is invalid"))
2023-11-12 17:43:23 +03:00
}
func ErrBadJSON(c *fiber.Ctx) error {
return c.Status(http.StatusBadRequest).JSON(ErrorJSON("Bad JSON data"))
2023-11-12 17:43:23 +03:00
}
func ErrAuth(c *fiber.Ctx) error {
return c.Status(http.StatusUnauthorized).JSON(ErrorJSON("Authentication failed"))
2023-11-12 17:43:23 +03:00
}
func NoError(c *fiber.Ctx) error {
return c.Status(http.StatusOK).JSON(ErrorJSON(""))
2023-11-12 17:43:23 +03:00
}