40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
package models
|
|
|
|
import (
|
|
"github.com/sujit-baniya/fiber-boilerplate/app"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// ShieldConfig almacena las credenciales para la API de USITE Shield.
|
|
type ShieldConfig struct {
|
|
gorm.Model
|
|
BaseUrl string `json:"base_url" gorm:"column:base_url;type:text;default:'https://api-shield.u-s.app'"`
|
|
AdminToken string `json:"admin_token" gorm:"column:admin_token;type:text"`
|
|
Activo bool `json:"activo" gorm:"column:activo;default:true"`
|
|
Nota string `json:"nota" gorm:"column:nota;type:text"`
|
|
}
|
|
|
|
func (ShieldConfig) TableName() string { return "shield_config" }
|
|
|
|
func GetShieldConfig() (*ShieldConfig, error) {
|
|
var cfg ShieldConfig
|
|
err := app.Http.Database.DB.Where("activo = true").First(&cfg).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &cfg, nil
|
|
}
|
|
|
|
func UpsertShieldConfig(cfg *ShieldConfig) error {
|
|
var existing ShieldConfig
|
|
if err := app.Http.Database.DB.First(&existing).Error; err != nil {
|
|
return app.Http.Database.DB.Create(cfg).Error
|
|
}
|
|
return app.Http.Database.DB.Model(&existing).Updates(map[string]interface{}{
|
|
"base_url": cfg.BaseUrl,
|
|
"admin_token": cfg.AdminToken,
|
|
"activo": cfg.Activo,
|
|
"nota": cfg.Nota,
|
|
}).Error
|
|
}
|