/
addspin
/
tlss
Обзор
Документация
Войти
/
addspin
/
tlss
Код
Пакеты
0
Релизы
1
CI/CD
Аналитика
Безопасность
main
controllers/RemoveServer.go
74 строки
2 KB
addspin
update: change lang on logs.
22 окт 2025, 23:34
22 окт 2025, 23:34
d296471
Код
Авторство
О чём код?
package controllers import ( "log/slog" "github.com/addspin/tlss/models" "github.com/gofiber/fiber/v3" "github.com/jmoiron/sqlx" "github.com/spf13/viper" ) func RemoveServer(c fiber.Ctx) error { // ---------------------------------------Database inicialization for remove server database := viper.GetString("database.path") db, err := sqlx.Open("sqlite3", database) if err != nil { slog.Error("Fatal error", "error", err) } defer db.Close() if c.Method() == "POST" { data := new(models.ServerData) err := c.Bind().JSON(data) if err != nil { return c.Status(400).JSON( fiber.Map{"status": "error", "message": "Cannot parse JSON!", "data": err}, ) } // testData := utils.NewTestData() // id, err := testData.TestInt(data.Id) // if err != nil { // return c.Status(400).JSON(fiber.Map{ // "status": "error", // "message": "Отсутствуют обязательные поля: " + err.Error(), // }) // } tx := db.MustBegin() // удаляем сертификаты сервера dataRemoveCerts := `DELETE FROM certs WHERE server_id = ?` _, err = tx.Exec(dataRemoveCerts, data.Id) if err != nil { tx.Rollback() // Откатываем транзакцию при ошибке return c.Status(500).JSON(fiber.Map{ "status": "error", "message": "Error deleting server certificates: " + err.Error(), }) } // В конце удаляем сам сервер dataRemove := `DELETE FROM server WHERE id = ?` _, err = tx.Exec(dataRemove, data.Id) if err != nil { tx.Rollback() // Откатываем транзакцию при ошибке return c.Status(500).JSON(fiber.Map{ "status": "error", "message": "Error deleting server: " + err.Error(), }) } err = tx.Commit() // Проверяем ошибку при коммите if err != nil { return c.Status(500).JSON(fiber.Map{ "status": "error", "message": "Error saving changes: " + err.Error(), }) } } return c.Render("add_server/serverList-tpl", fiber.Map{}) }