Skip to content

Commit 128f971

Browse files
authored
Merge pull request #15 from GoLedgerDev/develop
Fix recursive search for @object properties
2 parents aa2c482 + 3b28d3c commit 128f971

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

assets/dataType.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ var dataTypeMap = map[string]*DataType{
181181
}
182182
}
183183

184+
dataVal["@assetType"] = "@object"
185+
184186
retVal, err := json.Marshal(dataVal)
185187
if err != nil {
186188
return "", nil, errors.WrapErrorWithStatus(err, "failed to marshal return value", http.StatusInternalServerError)

assets/get.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,11 @@ func getRecursive(stub *sw.StubWrapper, pvtCollection, key string, keysChecked [
164164
for k, v := range response {
165165
switch prop := v.(type) {
166166
case map[string]interface{}:
167+
168+
if prop["@assetType"].(string) == "@object" {
169+
continue
170+
}
171+
167172
propKey, err := NewKey(prop)
168173
if err != nil {
169174
return nil, errors.WrapErrorWithStatus(err, "failed to resolve asset references", 500)
@@ -205,6 +210,11 @@ func getRecursive(stub *sw.StubWrapper, pvtCollection, key string, keysChecked [
205210
case []interface{}:
206211
for idx, elem := range prop {
207212
if elemMap, ok := elem.(map[string]interface{}); ok {
213+
214+
if elemMap["@assetType"].(string) == "@object" {
215+
continue
216+
}
217+
208218
elemKey, err := NewKey(elemMap)
209219
if err != nil {
210220
return nil, errors.WrapErrorWithStatus(err, "failed to resolve asset references", 500)

stubwrapper/stubWrapper.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,3 +201,12 @@ func (sw *StubWrapper) GetMSPID() (string, errors.ICCError) {
201201
}
202202
return mspid, nil
203203
}
204+
205+
// SplitCompositeKey returns composite keys
206+
func (sw *StubWrapper) SplitCompositeKey(compositeKey string) (string, []string, errors.ICCError) {
207+
key, keys, err := sw.Stub.SplitCompositeKey(compositeKey)
208+
if err != nil {
209+
return "", nil, errors.WrapError(err, "stub.SplitCompositeKey call error")
210+
}
211+
return key, keys, nil
212+
}

test/tx_createAsset_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ func TestCreateAsset(t *testing.T) {
4343
"id": "31820792048",
4444
"height": 0.0,
4545
"info": map[string]interface{}{
46-
"passport": "1234",
46+
"@assetType": "@object",
47+
"passport": "1234",
4748
},
4849
}
4950

0 commit comments

Comments
 (0)