You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by as...@apache.org on 2019/06/27 11:53:28 UTC
[servicecomb-kie] 17/29: fix bug, key is duplicated
This is an automated email from the ASF dual-hosted git repository.
asifdxtreme pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-kie.git
commit 8f4f5e76d5c27d5b32ee475b098264b8481268a5
Author: tian <xi...@gmail.com>
AuthorDate: Thu Jun 6 18:47:09 2019 +0800
fix bug, key is duplicated
---
pkg/model/kv.go | 4 ++--
pkg/model/mongodb_doc.go | 4 ++++
server/dao/kie_api.go | 19 +++++++++++--------
pkg/model/kv.go => server/dao/tool.go | 12 ++++++++----
4 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/pkg/model/kv.go b/pkg/model/kv.go
index 332c074..73d33e3 100644
--- a/pkg/model/kv.go
+++ b/pkg/model/kv.go
@@ -18,6 +18,6 @@
package model
type KVResponse struct {
- LabelDoc *LabelDoc `json:"labels"`
- Data []*KVDoc `json:"data"`
+ LabelDoc *LabelDocResponse `json:"label"`
+ Data []*KVDoc `json:"data"`
}
diff --git a/pkg/model/mongodb_doc.go b/pkg/model/mongodb_doc.go
index 7645a14..71a9483 100644
--- a/pkg/model/mongodb_doc.go
+++ b/pkg/model/mongodb_doc.go
@@ -19,6 +19,10 @@ package model
import "go.mongodb.org/mongo-driver/bson/primitive"
+type LabelDocResponse struct {
+ LabelID string `json:"label_id,omitempty"`
+ Labels map[string]string `json:"labels,omitempty"`
+}
type LabelDoc struct {
ID primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
diff --git a/server/dao/kie_api.go b/server/dao/kie_api.go
index aaf613f..323d8e7 100644
--- a/server/dao/kie_api.go
+++ b/server/dao/kie_api.go
@@ -229,15 +229,14 @@ func (s *MongodbService) FindKV(ctx context.Context, domain string, options ...F
}
if len(curKV.Labels) == len(opts.Labels) {
openlogging.Debug("hit exact labels")
- curKV.Domain = ""
- curKV.Labels = nil //exact match don't need to return labels
labelGroup := &model.KVResponse{
- LabelDoc: &model.LabelDoc{
- Labels: opts.Labels,
- ID: primitive.NilObjectID,
+ LabelDoc: &model.LabelDocResponse{
+ Labels: opts.Labels,
+ LabelID: curKV.LabelID,
},
Data: make([]*model.KVDoc, 0),
}
+ clearKV(curKV)
labelGroup.Data = append(labelGroup.Data, curKV)
kvResp = append(kvResp, labelGroup)
return kvResp, nil
@@ -268,6 +267,7 @@ func (s *MongodbService) FindKV(ctx context.Context, domain string, options ...F
for _, labelGroup = range kvResp {
if reflect.DeepEqual(labelGroup.LabelDoc.Labels, curKV.Labels) {
groupExist = true
+ clearKV(curKV)
labelGroup.Data = append(labelGroup.Data, curKV)
break
}
@@ -275,14 +275,17 @@ func (s *MongodbService) FindKV(ctx context.Context, domain string, options ...F
}
if !groupExist {
labelGroup = &model.KVResponse{
- LabelDoc: &model.LabelDoc{
- Labels: curKV.Labels,
+ LabelDoc: &model.LabelDocResponse{
+ Labels: curKV.Labels,
+ LabelID: curKV.LabelID,
},
Data: []*model.KVDoc{curKV},
}
+ clearKV(curKV)
openlogging.Debug("add new label group")
+ kvResp = append(kvResp, labelGroup)
}
- kvResp = append(kvResp, labelGroup)
+
}
if len(kvResp) == 0 {
return nil, ErrKeyNotExists
diff --git a/pkg/model/kv.go b/server/dao/tool.go
similarity index 79%
copy from pkg/model/kv.go
copy to server/dao/tool.go
index 332c074..b3d5ea4 100644
--- a/pkg/model/kv.go
+++ b/server/dao/tool.go
@@ -15,9 +15,13 @@
* limitations under the License.
*/
-package model
+package dao
-type KVResponse struct {
- LabelDoc *LabelDoc `json:"labels"`
- Data []*KVDoc `json:"data"`
+import "github.com/apache/servicecomb-kie/pkg/model"
+
+//clearKV clean attr which don't need to return to client side
+func clearKV(kv *model.KVDoc) {
+ kv.Domain = ""
+ kv.Labels = nil
+ kv.LabelID = ""
}