github.com/crowdsecurity/crowdsec@v1.6.1/pkg/database/config.go (about) 1 package database 2 3 import ( 4 "github.com/pkg/errors" 5 6 "github.com/crowdsecurity/crowdsec/pkg/database/ent" 7 "github.com/crowdsecurity/crowdsec/pkg/database/ent/configitem" 8 ) 9 10 func (c *Client) GetConfigItem(key string) (*string, error) { 11 result, err := c.Ent.ConfigItem.Query().Where(configitem.NameEQ(key)).First(c.CTX) 12 if err != nil && ent.IsNotFound(err) { 13 return nil, nil 14 } 15 if err != nil { 16 return nil, errors.Wrapf(QueryFail, "select config item: %s", err) 17 } 18 19 return &result.Value, nil 20 } 21 22 func (c *Client) SetConfigItem(key string, value string) error { 23 24 nbUpdated, err := c.Ent.ConfigItem.Update().SetValue(value).Where(configitem.NameEQ(key)).Save(c.CTX) 25 if (err != nil && ent.IsNotFound(err)) || nbUpdated == 0 { //not found, create 26 err := c.Ent.ConfigItem.Create().SetName(key).SetValue(value).Exec(c.CTX) 27 if err != nil { 28 return errors.Wrapf(QueryFail, "insert config item: %s", err) 29 } 30 } else if err != nil { 31 return errors.Wrapf(QueryFail, "update config item: %s", err) 32 } 33 return nil 34 }