Синтаксис для передачи двух значений в запрос для матрицы Hyperledger? - PullRequest
0 голосов
/ 02 октября 2018

У меня есть запрос композитора hyperledger, где два значения передаются в _$option и _$trader.

query selectCallPositionForSeller {
  description: "Select call position based on ID"
  statement:
        SELECT org.tradenetwork.Trader
          WHERE (callPosition.option == _$option AND user_id == _$trader )
}

Где callPosition - это массив понятий.То, что я пытаюсь назвать так.

const selectByContract = await query('selectCallPositionForSeller', {'option': option}, {'trader': seller});

Но я считаю, что этот синтаксис неправильный.Каков правильный синтаксис для передачи двух значений?

Также является ли user_id = _$trader правильным способом сравнения объектов?

И допускает ли структура гиперледжера переменное число аргументов?(что я и предполагал в своем запросе).

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Думаю, что я отправлю ответ на этот вопрос, так как другой ответ не на 100% правильный, и это может быть полезно для кого-то.

Вот запрос (позывным является concept)

query selectSellerByContractAndCall {
  description: "Select call position based on seller ID"
  statement:
        SELECT org.mining3.tradenetwork.Trader
          WHERE ((callPosition CONTAINS (option == _$option)) AND (user_id == _$seller))
}

И он называется так

const selectSellerByContractAndCall = await query('selectSellerByContractAndCall', 
    {'option': 'resource:org.mining3.tradenetwork.Option#' + option.optionId, 'seller': seller.user_id });

Это правильный способ передачи объекта (то есть опции) в запрос.Который может иметь логику на этом, как это.

for(cp of selectSellerByContractAndCall[0].callPosition){
    //logic here
}
0 голосов
/ 04 октября 2018

Я думаю, что ваш синтаксис неверен.Попробуйте позвонить так:

return query('selectCallPositionForSeller', { "option": option, "trader": seller})

И, на всякий случай, поставьте выделение вот так:

query selectCallPositionForSeller {
description: "Select call position based on ID"
statement:
    SELECT org.tradenetwork.Trader
      WHERE ((callPosition.option == _$option) AND (user_id == _$trader))
}

надеюсь, это поможет!

...