Browse Source

Able to save preference version, created, updated fields

utkarshcmu 9 years ago
parent
commit
e371e03696

+ 1 - 1
pkg/api/api.go

@@ -164,7 +164,7 @@ func Register(r *macaron.Macaron) {
 			r.Delete("/:id", wrap(DeleteApiKey))
 			r.Delete("/:id", wrap(DeleteApiKey))
 		}, reqOrgAdmin)
 		}, reqOrgAdmin)
 
 
-    r.Combo("/preferences").Get(GetPreferences).Put(bind(m.SavePreferencesCommand{}), wrap(SavePreferences))
+		r.Combo("/preferences").Get(GetPreferences).Put(bind(m.SavePreferencesCommand{}), wrap(SavePreferences))
 
 
 		// Data sources
 		// Data sources
 		r.Group("/datasources", func() {
 		r.Group("/datasources", func() {

+ 3 - 3
pkg/api/preferences.go

@@ -10,10 +10,10 @@ import (
 func SavePreferences(c *middleware.Context, cmd m.SavePreferencesCommand) Response {
 func SavePreferences(c *middleware.Context, cmd m.SavePreferencesCommand) Response {
 
 
 	cmd.UserId = c.UserId
 	cmd.UserId = c.UserId
-  cmd.OrgId  = c.OrgId
+	cmd.OrgId = c.OrgId
 
 
 	if err := bus.Dispatch(&cmd); err != nil {
 	if err := bus.Dispatch(&cmd); err != nil {
-		return ApiError(500, "Failed to saved preferences", err)
+		return ApiError(500, "Failed to save preferences", err)
 	}
 	}
 
 
 	return ApiSuccess("Preferences saved")
 	return ApiSuccess("Preferences saved")
@@ -32,7 +32,7 @@ func GetPreferences(c *middleware.Context) {
 	dto := m.PreferencesDTO{
 	dto := m.PreferencesDTO{
 		Id:         query.Result.Id,
 		Id:         query.Result.Id,
 		UserId:     query.Result.UserId,
 		UserId:     query.Result.UserId,
-    OrgId:      query.Result.OrgId,
+		OrgId:      query.Result.OrgId,
 		Preference: query.Result.Preference,
 		Preference: query.Result.Preference,
 	}
 	}
 
 

+ 6 - 6
pkg/models/preferences.go

@@ -2,7 +2,7 @@ package models
 
 
 import (
 import (
 	"errors"
 	"errors"
-  "time"
+	"time"
 )
 )
 
 
 // Typed errors
 // Typed errors
@@ -14,10 +14,10 @@ type Preferences struct {
 	Id         int64
 	Id         int64
 	OrgId      int64
 	OrgId      int64
 	UserId     int64
 	UserId     int64
-  Version    int
+	Version    int
 	Preference map[string]interface{}
 	Preference map[string]interface{}
-  Created    time.Time
-  Updated    time.Time
+	Created    time.Time
+	Updated    time.Time
 }
 }
 
 
 // ---------------------
 // ---------------------
@@ -26,7 +26,7 @@ type Preferences struct {
 type GetPreferencesQuery struct {
 type GetPreferencesQuery struct {
 	Id     int64
 	Id     int64
 	OrgId  int64
 	OrgId  int64
-  UserId int64
+	UserId int64
 
 
 	Result *Preferences
 	Result *Preferences
 }
 }
@@ -46,6 +46,6 @@ type SavePreferencesCommand struct {
 type PreferencesDTO struct {
 type PreferencesDTO struct {
 	Id         int64                  `json:"Id"`
 	Id         int64                  `json:"Id"`
 	UserId     int64                  `json:"UserId"`
 	UserId     int64                  `json:"UserId"`
-  OrgId      int64                  `json:"OrgId"`
+	OrgId      int64                  `json:"OrgId"`
 	Preference map[string]interface{} `json:"Preference"`
 	Preference map[string]interface{} `json:"Preference"`
 }
 }

+ 3 - 3
pkg/services/sqlstore/migrations/preferences_mig.go

@@ -10,10 +10,10 @@ func addPreferencesMigrations(mg *Migrator) {
 			{Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true},
 			{Name: "id", Type: DB_BigInt, IsPrimaryKey: true, IsAutoIncrement: true},
 			{Name: "org_id", Type: DB_Int, Nullable: false},
 			{Name: "org_id", Type: DB_Int, Nullable: false},
 			{Name: "user_id", Type: DB_NVarchar, Length: 255, Nullable: false},
 			{Name: "user_id", Type: DB_NVarchar, Length: 255, Nullable: false},
-      {Name: "version", Type: DB_Int, Nullable: false},
+			{Name: "version", Type: DB_Int, Nullable: false},
 			{Name: "preference", Type: DB_Text, Nullable: false},
 			{Name: "preference", Type: DB_Text, Nullable: false},
-      {Name: "created", Type: DB_DateTime, Nullable: false},
-      {Name: "updated", Type: DB_DateTime, Nullable: false},
+			{Name: "created", Type: DB_DateTime, Nullable: false},
+			{Name: "updated", Type: DB_DateTime, Nullable: false},
 		},
 		},
 	}
 	}
 
 

+ 16 - 0
pkg/services/sqlstore/preferences.go

@@ -3,6 +3,7 @@ package sqlstore
 import (
 import (
 	"github.com/grafana/grafana/pkg/bus"
 	"github.com/grafana/grafana/pkg/bus"
 	m "github.com/grafana/grafana/pkg/models"
 	m "github.com/grafana/grafana/pkg/models"
+	"time"
 )
 )
 
 
 func init() {
 func init() {
@@ -54,10 +55,12 @@ func SavePreferences(cmd *m.SavePreferencesCommand) error {
 			savePref.UserId = cmd.UserId
 			savePref.UserId = cmd.UserId
 			savePref.OrgId = cmd.OrgId
 			savePref.OrgId = cmd.OrgId
 			savePref.Preference = cmd.Preference
 			savePref.Preference = cmd.Preference
+			savePref = SetPreferencesModel(savePref, false)
 			affectedRows, saveErr = sess.Insert(&savePref)
 			affectedRows, saveErr = sess.Insert(&savePref)
 		} else {
 		} else {
 			savePref = prefResults[0]
 			savePref = prefResults[0]
 			savePref.Preference = cmd.Preference
 			savePref.Preference = cmd.Preference
+			savePref = SetPreferencesModel(savePref, true)
 			affectedRows, saveErr = sess.Id(savePref.Id).Update(&savePref)
 			affectedRows, saveErr = sess.Id(savePref.Id).Update(&savePref)
 		}
 		}
 
 
@@ -68,3 +71,16 @@ func SavePreferences(cmd *m.SavePreferencesCommand) error {
 		return saveErr
 		return saveErr
 	})
 	})
 }
 }
+
+func SetPreferencesModel(pref m.Preferences, updating bool) m.Preferences {
+
+	if updating {
+		pref.Version = pref.Version + 1
+	} else {
+		pref.Version = 0
+		pref.Created = time.Now()
+	}
+	pref.Updated = time.Now()
+
+	return pref
+}