mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
	
	
		
			38 lines
		
	
	
		
			800 B
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			800 B
		
	
	
	
		
			Go
		
	
	
	
|  | package sqlstore | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"github.com/grafana/grafana/pkg/bus" | ||
|  | 	m "github.com/grafana/grafana/pkg/models" | ||
|  | ) | ||
|  | 
 | ||
|  | func init() { | ||
|  | 	bus.AddHandler("sql", SavePreferences) | ||
|  | } | ||
|  | 
 | ||
|  | func SavePreferences(cmd *m.SavePreferencesCommand) error { | ||
|  | 	return inTransaction2(func(sess *session) error { | ||
|  | 
 | ||
|  | 		sql := `SELECT * FROM preferences WHERE pref_id = ? ` + | ||
|  | 			`AND pref_type = ?` | ||
|  | 
 | ||
|  | 		var prefResults = make([]m.Preferences, 0) | ||
|  | 
 | ||
|  | 		resultsErr := sess.Sql(sql, cmd.PrefId, cmd.PrefType).Find(&prefResults) | ||
|  | 
 | ||
|  | 		if resultsErr != nil { | ||
|  | 			return resultsErr | ||
|  | 		} | ||
|  | 
 | ||
|  | 		var matchedPref m.Preferences | ||
|  | 		matchedPref = prefResults[0] | ||
|  | 		matchedPref.PrefData = cmd.PrefData | ||
|  | 		affectedRows, updateErr := sess.Id(matchedPref.Id).Update(&matchedPref) | ||
|  | 
 | ||
|  | 		if affectedRows == 0 { | ||
|  | 			return m.ErrPreferenceNotFound | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return updateErr | ||
|  | 	}) | ||
|  | } |