All checks were successful
Deploy on Master Change / deploy (push) Successful in 39s
63 lines
1.9 KiB
Go
63 lines
1.9 KiB
Go
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"})
|
|
}
|
|
}
|