Що повертає кожен виклик SDK

PHP

Об’єкти, які повертають виклики SDK, — виконання, його трасування, клієнт, рахунок, рядок виписки, сторінка — і яке поле відповіді API несе кожне їхнє поле.

Виклик SDK повертає об’єкт, який несе відповідь API. Ця сторінка називає об’єкт, який повертає кожен виклик, і каже, яким полем відповіді є кожне його поле.

Як побудовано результат

Результат — об’єкт, властивості якого не можна змінити. Він має властивість для кожного поля відповіді, названу в camel case. Сума грошей або кредитів — десятковий рядок, ніколи не float; ідентифікатор — рядок; час — DateTimeImmutable; статус — enum: ExecutionStatus, CustomerStatus, CreditEntryType. Якщо у відповіді бракує поля або значення має інший тип, кидається InvalidResponseException, а не повертається результат зі значенням за замовчуванням на цьому місці.

Який виклик що повертає

РезультатХто повертає
ExecutionDTOoperations()->execute(), operations()->executeAsync()
ExecutionStatusDTOexecutions()->get(), executions()->wait()
ExecutionTraceDTOexecutions()->trace()
CustomerDTOcustomers()->get(), customers()->create(), customers()->block(), customers()->unblock()
CustomerAccountDTOcustomers()->updateAccount(), customers()->topUp(), customers()->charge(), customers()->adjust()
CustomerPageDTOcustomers()->list()
CreditEntryPageDTOcustomers()->entries()
Список CreditPriceDTOcustomers()->prices()
HealthDTOhealth()

customers.delete() нічого не повертає. Події вебхука описує стаття Вебхуки.

Виконання

Кожне поле виконання описує стаття Надіслати запит.

ВластивістьПоле відповіді
executionIdexecution_id
statusstatus, як ExecutionStatus
operationCodeoperation
outputoutput
errorCodeerror_code
errorMessageerror_message
errorerror, як ExecutionErrorDTO із code і message
costcost, як ExecutionCostDTO з estimated і actual
cachecache, як ExecutionCacheDTO з hit і cachedAt
waitingOnwaiting_on, як WaitingOnDTO з nodeKey, type і resumeAt
traceUrltrace_url
retryAfterSecondsretry_after_seconds
replayedreplayed

ExecutionStatusDTO, те саме виконання, прочитане пізніше, має всі властивості, крім error і replayed. Обидва мають чотири методи, які читають статус: isCompleted(), isRejected(), isPending() — виконання queued, waiting або running — і isFinished(), який істинний, коли виконання не має жодного з цих статусів.

Трасування виконання

ExecutionTraceDTO — виконання з nodes — кожним вузлом, через який воно пройшло, за порядком, кожен — TraceNodeDTO з його спробами в провайдерів, — і events, подіями його трасування, кожна — TraceEventDTO. Тип вузла, його статус і тип події лишаються рядками: пізніша версія Slen може додати нові.

Поля — ті самі, що в GET /v1/executions/{id} у статті Виконання.

Клієнт і рахунок

Для чого клієнт і рахунок, каже стаття Клієнти та кредити.

Властивість CustomerDTOПоле відповіді
customerIdcustomer_id
externalUserIdexternal_user_id
statusstatus, як CustomerStatus
blockedAtblocked_at
blockReasonblock_reason
accountsaccounts, кожен — CustomerAccountDTO
createdAtcreated_at
updatedAtupdated_at

CustomerDTO::isBlocked() читає статус, а CustomerDTO::account() дає рахунок одного типу кредитів або null, коли клієнт не має рахунку цього типу.

Властивість CustomerAccountDTOПоле відповіді
customerAccountIdcustomer_account_id
customerIdcustomer_id
projectIdproject_id
externalUserIdexternal_user_id
creditTypecredit_type
balancebalance
reservedreserved
availableavailable
allowNegativeallow_negative
lowBalanceThresholdlow_balance_threshold
createdAtcreated_at
updatedAtupdated_at

Поля — ті самі, що в GET /v1/customers/{externalUserId} у статті Клієнти та кредити.

Виписка й ціни

CreditEntryDTO — один рух виписки: entryId, customerAccountId, externalUserId, creditType, entryType — це CreditEntryType, — credits зі знаком, balanceAfter, availableAfter, reservationId, note і createdAt. CreditPriceDTO — ціна однієї операції в одному типі кредитів: creditPriceId, projectId, operationCode, creditType, credits, createdAt і updatedAt.

Сторінка

PageDTO має data — рядки сторінки — і nextCursor — курсор наступної сторінки. hasMore() істинний, поки курсор є.

Передайте курсор у наступний виклик і зупиніться, коли він дорівнює null. Повна остання сторінка ще може нести курсор; тоді сторінка після неї порожня.

Що читати далі