Преглед изворни кода

Small progress, save search works

Torkel Ödegaard пре 11 година
родитељ
комит
00b4d233cc

+ 10 - 0
pkg/routes/api/api_dashboard.go

@@ -54,6 +54,15 @@ func Search(c *middleware.Context) {
 	c.JSON(200, results)
 }
 
+func convertToStringArray(arr []interface{}) []string {
+	b := make([]string, len(arr))
+	for i := range arr {
+		b[i] = arr[i].(string)
+	}
+
+	return b
+}
+
 func PostDashboard(c *middleware.Context) {
 	var command apimodel.SaveDashboardCommand
 
@@ -66,6 +75,7 @@ func PostDashboard(c *middleware.Context) {
 	dashboard.Data = command.Dashboard
 	dashboard.Title = dashboard.Data["title"].(string)
 	dashboard.AccountId = c.GetAccountId()
+	dashboard.Tags = convertToStringArray(dashboard.Data["tags"].([]interface{}))
 	dashboard.UpdateSlug()
 
 	if dashboard.Data["id"] != nil {

+ 1 - 0
pkg/stores/sqlstore/sqlstore.go

@@ -34,6 +34,7 @@ func Init() {
 	models.GetAccountByLogin = GetAccountByLogin
 	models.GetDashboard = GetDashboard
 	models.SaveDashboard = SaveDashboard
+	models.SearchQuery = SearchQuery
 }
 
 func LoadModelsConfig() {

+ 17 - 1
pkg/stores/sqlstore/sqlstore_dashboards.go

@@ -14,7 +14,13 @@ func SaveDashboard(dash *models.Dashboard) error {
 		return err
 	}
 
-	if _, err = sess.Insert(dash); err != nil {
+	if dash.Id == 0 {
+		_, err = sess.Insert(dash)
+	} else {
+		_, err = sess.Update(dash)
+	}
+
+	if err != nil {
 		sess.Rollback()
 		return err
 	} else if err = sess.Commit(); err != nil {
@@ -36,3 +42,13 @@ func GetDashboard(slug string, accountId int64) (*models.Dashboard, error) {
 
 	return &dashboard, nil
 }
+
+func SearchQuery(query string, accountId int64) ([]*models.SearchResult, error) {
+	sess := x.Limit(100, 0).Where("account_id=?", accountId)
+	sess.Table("Dashboard")
+
+	var results []*models.SearchResult
+	err := sess.Find(&results)
+
+	return results, err
+}