This commit is contained in:
62
server/internal/handlers/handlers_config.go
Normal file
62
server/internal/handlers/handlers_config.go
Normal 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"})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user