Kaynağa Gözat

fix tag udpate with new ID

abhishek9686 11 ay önce
ebeveyn
işleme
ad4c663612
2 değiştirilmiş dosya ile 14 ekleme ve 2 silme
  1. 2 0
      controllers/tags.go
  2. 12 2
      logic/tags.go

+ 2 - 0
controllers/tags.go

@@ -143,6 +143,8 @@ func updateTag(w http.ResponseWriter, r *http.Request) {
 			logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
 			return
 		}
+		// delete old Tag entry
+		logic.DeleteTag(updateTag.ID)
 	}
 	go logic.UpdateTag(updateTag, newID)
 	logic.ReturnSuccessResponse(w, r, "updating tags")

+ 12 - 2
logic/tags.go

@@ -15,7 +15,7 @@ var tagMutex = &sync.RWMutex{}
 // GetTag - fetches tag info
 func GetTag(tagID models.TagID) (models.Tag, error) {
 	data, err := database.FetchRecord(database.TAG_TABLE_NAME, tagID.String())
-	if err != nil && !database.IsEmptyRecord(err) {
+	if err != nil {
 		return models.Tag{}, err
 	}
 	tag := models.Tag{}
@@ -137,11 +137,21 @@ func UpdateTag(req models.UpdateTagReq, newID models.TagID) {
 			if node.Tags == nil {
 				node.Tags = make(map[models.TagID]struct{})
 			}
-			node.Tags[req.ID] = struct{}{}
+			if newID != "" {
+				node.Tags[newID] = struct{}{}
+			} else {
+				node.Tags[req.ID] = struct{}{}
+			}
 			UpsertNode(&node)
 		} else {
+			if newID != "" {
+				delete(node.Tags, req.ID)
+				node.Tags[newID] = struct{}{}
+				UpsertNode(&node)
+			}
 			delete(tagNodesMap, node.ID.String())
 		}
+
 	}
 	for _, deletedTaggedNode := range tagNodesMap {
 		deletedTaggedHost := deletedTaggedNode