github.com/ngocphuongnb/tetua@v0.0.7-alpha/packages/entrepository/setting.go (about) 1 package entrepository 2 3 import ( 4 "context" 5 6 "github.com/ngocphuongnb/tetua/app/config" 7 "github.com/ngocphuongnb/tetua/app/entities" 8 "github.com/ngocphuongnb/tetua/app/logger" 9 "github.com/ngocphuongnb/tetua/packages/entrepository/ent" 10 ) 11 12 type SettingRepository struct { 13 *Repository 14 } 15 16 func (ur *SettingRepository) All(ctx context.Context) []*config.SettingItem { 17 result := make([]*config.SettingItem, 0) 18 settings, err := ur.Client.Setting.Query().All(ctx) 19 20 if err != nil { 21 logger.Get().Error(err) 22 return result 23 } 24 25 for _, setting := range settings { 26 result = append(result, &config.SettingItem{ 27 Name: setting.Name, 28 Value: setting.Value, 29 Type: "", 30 }) 31 } 32 33 return result 34 } 35 36 func (ur *SettingRepository) Save(ctx context.Context, settings []*entities.Setting) error { 37 var builders []*ent.SettingCreate 38 39 for _, s := range settings { 40 us := ur.Client.Setting. 41 Create(). 42 SetName(s.Name). 43 SetValue(s.Value). 44 SetType(s.Type) 45 builders = append(builders, us) 46 } 47 48 return ur.Client.Setting. 49 CreateBulk(builders...). 50 OnConflict(). 51 UpdateNewValues(). 52 Exec(ctx) 53 }