Что возвращает каждый вызов 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. Полная последняя страница ещё может нести курсор; тогда страница после неё пустая.

Что читать дальше