v5.0 cleanup

This commit is contained in:
ngn
2024-10-06 17:30:25 +03:00
parent 38f51935b9
commit d5e875ae53
29 changed files with 711 additions and 427 deletions

View File

@ -1,16 +1,15 @@
package routes
import (
"log"
"database/sql"
"net/http"
"os"
"strings"
"time"
"github.com/gofiber/fiber/v2"
"github.com/mattn/go-sqlite3"
"github.com/ngn13/website/api/config"
"github.com/ngn13/website/api/database"
"github.com/ngn13/website/api/global"
"github.com/ngn13/website/api/util"
)
@ -28,14 +27,12 @@ func AuthMiddleware(c *fiber.Ctx) error {
return c.Next()
}
func Login(c *fiber.Ctx) error {
if c.Query("pass") != os.Getenv("PASSWORD") {
return c.Status(http.StatusUnauthorized).JSON(fiber.Map{
"error": "Authentication failed",
})
func GET_Login(c *fiber.Ctx) error {
if c.Query("pass") != config.Get("password") {
return util.ErrAuth(c)
}
log.Printf("New login from %s", util.GetIP(c))
util.Info("new login from %s", util.GetIP(c))
return c.Status(http.StatusOK).JSON(fiber.Map{
"error": "",
@ -43,44 +40,58 @@ func Login(c *fiber.Ctx) error {
})
}
func Logout(c *fiber.Ctx) error {
func GET_Logout(c *fiber.Ctx) error {
Token = util.CreateToken()
log.Printf("Logout from %s", util.GetIP(c))
util.Info("logout from %s", util.GetIP(c))
return c.Status(http.StatusOK).JSON(fiber.Map{
"error": "",
})
}
func RemoveService(c *fiber.Ctx) error {
func DEL_RemoveService(c *fiber.Ctx) error {
var (
db *database.Type
name string
db *sql.DB
service database.Service
name string
found bool
err error
)
db = c.Locals("database").(*database.Type)
db = *(c.Locals("database").(**sql.DB))
name = c.Query("name")
if name == "" {
util.ErrBadData(c)
}
_, err := db.Sql.Exec("DELETE FROM services WHERE name = ?", name)
if util.ErrorCheck(err, c) {
if found, err = service.Get(db, name); err != nil {
util.Fail("error while searching for a service (\"%s\"): %s", name, err.Error())
return util.ErrServer(c)
}
if !found {
return util.ErrEntryNotExists(c)
}
if err = service.Remove(db); err != nil {
util.Fail("error while removing a service (\"%s\"): %s", service.Name, err.Error())
return util.ErrServer(c)
}
return util.NoError(c)
}
func AddService(c *fiber.Ctx) error {
func PUT_AddService(c *fiber.Ctx) error {
var (
service global.Service
db *database.Type
service database.Service
db *sql.DB
found bool
err error
)
db = c.Locals("database").(*database.Type)
db = *(c.Locals("database").(**sql.DB))
if c.BodyParser(&service) != nil {
return util.ErrBadJSON(c)
@ -90,58 +101,63 @@ func AddService(c *fiber.Ctx) error {
return util.ErrBadData(c)
}
rows, err := db.Sql.Query("SELECT * FROM services WHERE name = ?", service.Name)
if util.ErrorCheck(err, c) {
if found, err = service.Get(db, service.Name); err != nil {
util.Fail("error while searching for a service (\"%s\"): %s", service.Name, err.Error())
return util.ErrServer(c)
}
if rows.Next() {
rows.Close()
return util.ErrExists(c)
if found {
return util.ErrEntryExists(c)
}
rows.Close()
_, err = db.Sql.Exec(
"INSERT INTO services(name, desc, url) values(?, ?, ?)",
service.Name, service.Desc, service.Url,
)
if util.ErrorCheck(err, c) {
if err = service.Save(db); err != nil {
util.Fail("error while saving a new service (\"%s\"): %s", service.Name, err.Error())
return util.ErrServer(c)
}
return util.NoError(c)
}
func RemovePost(c *fiber.Ctx) error {
func DEL_RemovePost(c *fiber.Ctx) error {
var (
db *database.Type
id string
db *sql.DB
id string
found bool
err error
post database.Post
)
db = c.Locals("database").(*database.Type)
id = c.Query("id")
db = *(c.Locals("database").(**sql.DB))
if id == "" {
if id = c.Query("id"); id == "" {
return util.ErrBadData(c)
}
_, err := db.Sql.Exec("DELETE FROM posts WHERE id = ?", id)
if util.ErrorCheck(err, c) {
if found, err = post.Get(db, id); err != nil {
util.Fail("error while searching for a post (\"%s\"): %s", id, err.Error())
return util.ErrServer(c)
}
if !found {
return util.ErrEntryNotExists(c)
}
if err = post.Remove(db); err != nil {
util.Fail("error while removing a post (\"%s\"): %s", post.ID, err.Error())
return util.ErrServer(c)
}
return util.NoError(c)
}
func AddPost(c *fiber.Ctx) error {
func PUT_AddPost(c *fiber.Ctx) error {
var (
db *database.Type
post global.Post
db *sql.DB
post database.Post
err error
)
db = c.Locals("database").(*database.Type)
db = *(c.Locals("database").(**sql.DB))
post.Public = 1
if c.BodyParser(&post) != nil {
@ -153,19 +169,14 @@ func AddPost(c *fiber.Ctx) error {
}
post.Date = time.Now().Format("02/01/06")
post.ID = util.TitleToID(post.Title)
_, err := db.Sql.Exec(
"INSERT INTO posts(id, title, author, date, content, public, vote) values(?, ?, ?, ?, ?, ?, ?)",
post.ID, post.Title, post.Author, post.Date, post.Content, post.Public, post.Vote,
)
if err != nil && strings.Contains(err.Error(), sqlite3.ErrConstraintUnique.Error()) {
return util.ErrExists(c)
if err = post.Save(db); err != nil && strings.Contains(err.Error(), sqlite3.ErrConstraintUnique.Error()) {
return util.ErrEntryExists(c)
}
if util.ErrorCheck(err, c) {
return util.ErrExists(c)
if err != nil {
util.Fail("error while saving a new post (\"%s\"): %s", post.ID, err.Error())
return util.ErrServer(c)
}
return util.NoError(c)