-
Notifications
You must be signed in to change notification settings - Fork 1
DemoScenariesRus_PurchaseOrder_PrivEth
Сценарий демонстрирует распространение сделки по узлам и переключение статуса сделки.
Данный сценарий проводится в кластере Private Ethereum (PrivEth).
Используется предустановленный смарт-контракт с типом сделки FirstDeal (без карты переходов).
- На узле
PrivEth-1создается сделка с атрибутамиDocNumber=123, Item=Pepper, DeliveryDate=2020-08-08, Quantity=10 - На узле
PrivEth-1переключаем статус сделки в"Issued" - Убеждаемся в наличии сделки на узле PrivEth-2
в"Issued"` - На узле
PrivEth-2переключаем статус сделки в"Adjusted", добавляем атрибутPaymentDate=2020-01-02и изменяем атрибутDeliveryDate=2020-08-09 - Убеждаемся в переключении статуса сделки на узле
PrivEth-1 в"Adjusted"` - На узле
PrivEth-1переключаем статус сделки вOrdered
ВНИМАНИЕ! В примерах вызовов подставлен идентификатор пробной сделки (UID) - Вам надо подставлять вместо него идентификатор, полученный при создании сделки на шаге 1.
ВНИМАНИЕ! В запросах в заголовке CHANNEL, AUHORIZATION необходимо использовать полученный Вами при регистрации персональный идентификатор. Это позволит не мешать одновременной работе нескольких пользователей, а также облегчит работу службы Технической поддержки при возникновении у Вас каких-либо вопросов. В примерах запросов используется персональный идентификатор Demo.
Используется вызов POST-метода /api/deals/. В качестве данных запроса указывается json-спецификация сделки, в нашем случае:
{
"dealUid": null,
"kind": "FirstDeal",
"parties": [
{
"key": "CLIENT2",
"role": "Seller"
},
{
"key": "CLIENT1",
"role": "Buyer"
}
],
"parameters": [
{
"key": "DocNumber",
"value": "123"
},
{
"key": "Item",
"value": "Pepper"
},
{
"key": "DeliveryDate",
"value": "2020-08-08"
},
{
"key": "Quantity",
"value": "10"
}
]
}
| Пример вызова | Пример ответа |
|---|---|
curl --request POST 'http://democlient1.kekker.com/api/deals'
--header 'Content-Type: application/json'
--header 'Channel: Demo'
--header 'Authorization: Basic S2Vra2VyVXNlcjp6RGZqbTMz'
--data-raw '{
"dealUid": null,
"kind": "FirstDeal",
"parties": [
{
"key": "CLIENT2",
"role": "Seller"
},
{
"key": "CLIENT1",
"role": "Buyer"
}
],
"parameters": [
{
"key": "DocNumber",
"value": "123"
},
{
"key": "Item",
"value": "Pepper"
},
{
"key": "DeliveryDate",
"value": "2020-08-08"
},
{
"key": "Quantity",
"value": "10"
}
]
}'
|
Если всё хорошо - код ответа 200. В теле ответа прийдет идентификатор сделки [UID] |
Используется вызов POST-метода /api/deals/setstatus. В качестве данных запроса указывается json-спецификация нового состояния сделки, в нашем случае:
{
"dealUid": "{UID}",
"status": "Issued___",
"remark": null,
"parameters": []
}
| Пример вызова | Пример ответа |
|---|---|
curl --request POST 'http://democlient1.kekker.com/api/deals/setstatus'
--header 'Content-Type: application/json'
--header 'Channel: Demo'
--header 'Accept: application/json'
--data-raw '{
"dealUid": "{UID}",
"status": "Issued___",
"remark": null,
"parameters": []
}'
|
Если всё хорошо - код ответа 200. Тело ответа пустое. |
Используется вызов GET-метода /api/deals/{UID}. Где {UID} - идентификатор нашей сделки
Перед выполнением запросов лучше выдержать паузу в 5-6 минут после шага [2]
| Пример вызовов (отличие в URL узла) | Пример ответа (проверяем status и parameters) |
|---|---|
curl --request GET 'http://democlient2.kekker.com/api/deals/{UID}
--header 'Channel: Demo'
--header 'Accept: application/json'
--header 'Authorization: Basic S2Vra2VyVXNlcjp6RGZqbTMz'
|
{
"uid": "2adc2d34-3992-4438-81e8-7c535aa38651",
"kind": "FirstDeal",
"status": "Issued___",
"remark": "1",
"parameters": [
{
"key": "DocNumber",
"value": "123"
},
{
"key": "Item",
"value": "Pepper"
},
{
"key": "DeliveryDate",
"value": "2020-08-08"
},
{
"key": "Quantity",
"value": "10"
}
],
"parties": [
{
"key": "CLIENT2",
"role": "Seller"
},
{
"key": "CLIENT1",
"role": "Buyer"
}
],
"files": [],
"history": [
{
"status": "Issued___",
"party": {
"key": "CLIENT1",
"role": "Buyer"
},
"remark": "1",
"version": 2
}
],
"statusMap": []
}
|
4. На узле PrivEth-2 переключаем статус сделки в Adjusted, добавляем атрибут PaymentDate и изменяем атрибут DeliveryDate
Используется вызов POST-метода /api/deals/setstatus. В качестве данных запроса указывается json-спецификация нового состояния сделки, в нашем случае:
{
"dealUid": "{UID}",
"status": "Adjusted_",
"remark": "2",
"parameters": [
{
"key": "PaymentDate",
"value": "2020-01-02"
},
{
"key": "DeliveryDate",
"value": "2020-08-09"
}
]
}
| Пример вызова | Пример ответа |
|---|---|
curl --request POST 'http://democlient2.kekker.com/api/deals/setstatus'
--header 'Content-Type: application/json'
--header 'Channel: Demo'
--header 'Accept: application/json'
--data-raw '{
"dealUid": {UID},
"status": "Adjusted_",
"remark": null,
"parameters": [
{
"key": "PaymentDate",
"value": "2020-01-02"
},
{
"key": "DeliveryDate",
"value": "2020-08-09"
}
]
}'
|
Если всё хорошо - код ответа 200. Тело ответа пустое. |
Используется вызов GET-метода /api/deals/{UID}. Где {UID} - идентификатор нашей сделки
Перед выполнением запросов лучше выдержать паузу в 1-2 минут после шага [4]
| Пример вызовов (отличие в URL узла) | Пример ответа (проверяем status и parameters) |
|---|---|
curl --request GET 'http://democlient1.kekker.com/api/deals/{UID}
--header 'Channel: Demo'
--header 'Accept: application/json'
--header 'Authorization: Basic S2Vra2VyVXNlcjp6RGZqbTMz'
|
{
"uid": "2adc2d34-3992-4438-81e8-7c535aa38651",
"kind": "FirstDeal",
"status": "Adjusted_",
"remark": "2",
"parameters": [
{
"key": "DocNumber",
"value": "123"
},
{
"key": "Item",
"value": "Pepper"
},
{
"key": "DeliveryDate",
"value": "2020-08-09"
},
{
"key": "Quantity",
"value": "10"
},
{
"key": "PaymentDate",
"value": "2020-01-02"
}
],
"parties": [
{
"key": "CLIENT2",
"role": "Seller"
},
{
"key": "CLIENT1",
"role": "Buyer"
}
],
"files": [],
"history": [
{
"status": "Issued___",
"party": {
"key": "CLIENT1",
"role": "Buyer"
},
"remark": "1",
"version": 2
},
{
"status": "Adjusted_",
"party": {
"key": "CLIENT2",
"role": "Seller"
},
"remark": "2",
"version": 3
}
],
"statusMap": []
}
|
Используется вызов POST-метода /api/deals/setstatus. В качестве данных запроса указывается json-спецификация нового состояния сделки, в нашем случае:
{
"dealUid": {UID},
"status": "Ordered__",
"remark": null,
"parameters": []
}
| Пример вызова | Пример ответа |
|---|---|
curl --request POST 'http://democlient1.kekker.com/api/deals/setstatus'
--header 'Content-Type: application/json'
--header 'Channel: Demo'
--header 'Accept: application/json'
--data-raw '{
"dealUid": "856b6bb4-3a72-4e81-b34d-33966e46b268",
"status": "Ordered__",
"remark": null,
"parameters": []
}'
|
Если всё хорошо - код ответа 200. Тело ответа пустое. |