Приклад для договору -------------------- Зміна власника договору ~~~~~~~~~~~~~~~~~~~~~~~ Переглянемо приклад зміни власника для договору. Отримання доступу до договору ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Спочатку отримаємо доступ до договору: .. http:example:: tutorial/get-contract-credentials.http :code: Майданчик `broker` є поточним власником ``owner`` договору. Зверніть увагу, що секція відповіді `access` містить ключ ``transfer``, який використовується для зміни власника договору. Після отрімання доступу до договору майданчик повинен довести ключ ``transfer`` до відома клієнта. Ініціація зміни власника ^^^^^^^^^^^^^^^^^^^^^^^^ Перш за все, необхідно знати ID договору, власника якого ви хочете змінити. Майданчик, що стане новим власником договору, повинен створити об'єкт `Transfer`. .. http:example:: tutorial/create-contract-transfer.http :code: Об'єкт `Transfer` містить новий ключ доступу ``token`` та новий ключ ``transfer`` для об'єкта, власник якого буде змінений. Зміна власника договору ^^^^^^^^^^^^^^^^^^^^^^^ Можливість зміни власника договору залежить від статусу договору: +-----------+--------------+ | Дозволено | Не дозволено | +-----------+--------------+ | active | pending | | | | | | terminated | | | | | | cancelled | +-----------+--------------+ Щоб змінити власника договору новий майданчик повинен надіслати POST запит на відповідний `/contracts/id/` з секцією `data`, що міститиме ідентифікатор ``id`` для `Transfer` та ключ ``transfer`` отриманий від клієнта: .. http:example:: tutorial/change-contract-ownership.http :code: Оновлене значення властивості ``owner`` вказує, що власник був успішно змінений. Зверніть увагу, що новий майданчик повинен довести до відома клієнта новий ключ ``transfer`` (згенерований в об'єкті `Transfer`). Можна перевірити чи після застосування об'єкта `Transfer` шлях до договору зберігається у властивості ``usedFor``. .. http:example:: tutorial/get-used-contract-transfer.http :code: Спробуємо змінити договір за допомогою ключа ``token``, отриманого при створенні об'єкта `Transfer`. .. http:example:: tutorial/modify-contract.http :code: Зверніть увагу, що тільки майданчик з відповідним рівнем акредитації може стати новим власником. В іншому випадку майданчику така дія буде заборонена. .. http:example:: tutorial/change-contract-ownership-forbidden.http :code: Зміна власника дозволена тільки якщо поточний власник тендера має спеціальний рівень акредетації, що дозволяє зміну: .. http:example:: tutorial/change-contract-ownership-forbidden-owner.http :code: