41 lines
941 B
Go
41 lines
941 B
Go
package repository
|
|
|
|
import (
|
|
"strings"
|
|
"time"
|
|
|
|
"hyapp-admin-server/internal/model"
|
|
|
|
"gorm.io/gorm/clause"
|
|
)
|
|
|
|
func (s *Store) ListAppConfigs(group string) ([]model.AppConfig, error) {
|
|
var items []model.AppConfig
|
|
err := s.db.Where("`group` = ?", strings.TrimSpace(group)).Order("`key` ASC").Find(&items).Error
|
|
return items, err
|
|
}
|
|
|
|
func (s *Store) UpsertAppConfigs(items []model.AppConfig) error {
|
|
if len(items) == 0 {
|
|
return nil
|
|
}
|
|
|
|
now := time.Now()
|
|
for index := range items {
|
|
items[index].Group = strings.TrimSpace(items[index].Group)
|
|
items[index].Key = strings.TrimSpace(items[index].Key)
|
|
items[index].UpdatedAt = now
|
|
if items[index].CreatedAt.IsZero() {
|
|
items[index].CreatedAt = now
|
|
}
|
|
}
|
|
|
|
return s.db.Clauses(clause.OnConflict{
|
|
Columns: []clause.Column{
|
|
{Name: "group"},
|
|
{Name: "key"},
|
|
},
|
|
DoUpdates: clause.AssignmentColumns([]string{"value", "description", "updated_at"}),
|
|
}).Create(&items).Error
|
|
}
|