package sqlstore import ( "database/sql" "errors" sq "github.com/Masterminds/squirrel" ) func (s *SQLStore) getSystemSetting(db sq.BaseRunner, key string) (string, error) { scanner := s.getQueryBuilder(db). Select("value"). From(s.tablePrefix + "system_settings"). Where(sq.Eq{"id": key}). QueryRow() var result string err := scanner.Scan(&result) if err != nil && !errors.Is(sql.ErrNoRows, err) { return "", err } return result, nil } func (s *SQLStore) getSystemSettings(db sq.BaseRunner) (map[string]string, error) { query := s.getQueryBuilder(db).Select("*").From(s.tablePrefix + "system_settings") rows, err := query.Query() if err != nil { return nil, err } defer s.CloseRows(rows) results := map[string]string{} for rows.Next() { var id string var value string err := rows.Scan(&id, &value) if err != nil { return nil, err } results[id] = value } return results, nil } func (s *SQLStore) setSystemSetting(db sq.BaseRunner, id, value string) error { query := s.getQueryBuilder(db).Insert(s.tablePrefix+"system_settings").Columns("id", "value").Values(id, value) if s.dbType == mysqlDBType { query = query.Suffix("ON DUPLICATE KEY UPDATE value = ?", value) } else { query = query.Suffix("ON CONFLICT (id) DO UPDATE SET value = EXCLUDED.value") } _, err := query.Exec() if err != nil { return err } return nil }