config token
All checks were successful
Deploy on Master Change / deploy (push) Successful in 39s

This commit is contained in:
2026-07-01 08:04:03 +07:00
parent fd4ab86fff
commit d1411ad1df
8 changed files with 179 additions and 9 deletions

View File

@@ -0,0 +1,62 @@
package handlers
import (
"os"
"time"
"server/internal/models"
"github.com/gofiber/fiber/v2"
"gorm.io/gorm"
)
// GetQldtToken lấy token từ database, nếu không có sẽ lấy từ biến môi trường
func GetQldtToken(db *gorm.DB) string {
var setting models.SystemSetting
if err := db.Where("setting_key = ?", "QLDT_TOKEN").First(&setting).Error; err == nil && setting.SettingValue != "" {
return setting.SettingValue
}
return os.Getenv("QLDT_TOKEN")
}
// GetQldtTokenHandler trả về token hiện tại (chỉ hỗ trợ phuocntb@rikkeiacademy.com)
func GetQldtTokenHandler(db *gorm.DB) fiber.Handler {
return func(c *fiber.Ctx) error {
email, _ := c.Locals("staffEmail").(string)
if email != "phuocntb@rikkeiacademy.com" {
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": "Bạn không có quyền truy cập thông tin này"})
}
token := GetQldtToken(db)
return c.JSON(fiber.Map{"token": token})
}
}
// SaveQldtTokenHandler lưu token mới vào database (chỉ hỗ trợ phuocntb@rikkeiacademy.com)
func SaveQldtTokenHandler(db *gorm.DB) fiber.Handler {
return func(c *fiber.Ctx) error {
email, _ := c.Locals("staffEmail").(string)
if email != "phuocntb@rikkeiacademy.com" {
return c.Status(fiber.StatusForbidden).JSON(fiber.Map{"error": "Bạn không có quyền thực hiện thao tác này"})
}
var body struct {
Token string `json:"token"`
}
if err := c.BodyParser(&body); err != nil {
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{"error": "Yêu cầu không hợp lệ"})
}
setting := models.SystemSetting{
SettingKey: "QLDT_TOKEN",
SettingValue: body.Token,
UpdatedAt: time.Now(),
}
if err := db.Save(&setting).Error; err != nil {
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{"error": "Lỗi lưu cấu hình: " + err.Error()})
}
return c.JSON(fiber.Map{"ok": true, "message": "Đã cập nhật QLDT_TOKEN thành công"})
}
}