GetForwardedDocumentEvents¶
Метод GetForwardedDocumentEvents
возвращает список событий пересылки документов в указанный ящик.
- POST /V2/GetForwardedDocumentEvents¶
- Query Parameters:
boxId – идентификатор ящика организации.
- Request Headers:
Authorization – данные, необходимые для авторизации.
- Request Body:
Тело запроса должно содержать структуру
GetForwardedDocumentEventsRequest
:message GetForwardedDocumentEventsRequest { required TimeBasedFilter Filter = 1; optional bytes AfterIndexKey = 2; optional bool PopulateForwardedDocuments = 3 [default = false]; optional bool InjectEntityContent = 4 [default = false]; }
Filter
— фильтр событий, представленный структурой TimeBasedFilter.AfterIndexKey
— уникальный ключ, позволяющий итерироваться по списку событий.PopulateForwardedDocuments
— флаг, указывающий, что в ответе нужно заполнить метаифнормацию о документах. Метаинформация вернется в теле ответа метода в полеForwardedDocumentEvent.ForwardedDocument
.InjectEntityContent
— флаг, указывающий, что в ответе нужно вернуть содержимое документа и относящихся к нему сущностей.
- Status Codes:
200 OK – операция успешно завершена.
400 Bad Request – данные в запросе имеют неверный формат или отсутствуют обязательные параметры.
401 Unauthorized – в запросе отсутствует HTTP-заголовок
Authorization
или в этом заголовке содержатся некорректные авторизационные данные.402 Payment Required – у организации с указанным идентификатором
boxId
отсутствует или закончилась подписка на API.403 Forbidden – доступ к ящику с предоставленным авторизационным токеном запрещен.
404 Not Found – не найдено сообщение с заданным идентификатором.
405 Method Not Allowed – используется неподходящий HTTP-метод.
500 Internal Server Error – при обработке запроса возникла непредвиденная ошибка.
- Response Body:
Тело ответа содержит список событий пересылки документов в ящик, представленный структурой
GetForwardedDocumentEventsResponse
:message GetForwardedDocumentEventsResponse { required int32 TotalCount = 1; repeated ForwardedDocumentEvent Events = 2; required TotalCountType TotalCountType = 3; } message ForwardedDocumentEvent { required Timestamp Timestamp = 1; required ForwardedDocumentId ForwardedDocumentId = 2; required bytes IndexKey = 3; optional ForwardedDocument ForwardedDocument = 4; }
TotalCount
— общее количество событий, соответствующих заданным параметрам.Events
— список событий, представленных структуройForwardedDocumentEvent
с полями:Timestamp
— метка времени возникновения события, представленная структурой Timestamp.ForwardedDocumentId
— идентификатор пересланного документа, представленный структурой ForwardedDocumentId.IndexKey
— ключ, используемый для постраничного получения списка событий. Может передаваться в качестве параметра запросаAfterIndexKey
.ForwardedDocument
— пересланный документ, представленный структурой ForwardedDocument.
TotalCountType
— параметр, отражающий, какое значение содержит полеTotalCount
, представленный структурой TotalCountType.
Список GetForwardedDocumentEventsResponse.Events
может содержать не более 100 элементов. Чтобы получить остальные элементы, вызовите метод GetForwardedDocumentEvents
с теми же параметрами и с указанием AfterIndexKey
. В зависимости от значения параметра AfterIndexKey
метод работает следующим образом:
Если в запросе отсутствует параметр
AfterIndexKey
, то метод вернет начало списка событий, удовлетворяющих фильтру.Если в запросе указан параметр
AfterIndexKey
, то возвращенный список начнется с события, следующего за событием с ключомAfterIndexKey
; событие с ключомAfterIndexKey
в этот список не попадает.
Пример использования (C#)¶
Получение списка пересланных документов.
var diadoc = new DiadocApi(...);
var authToken = ...;
var myBoxId = ...;
var request = new GetForwardedDocumentEventsRequest { PopulateForwardedDocuments = true };
while (true)
{
var response = diadoc.GetForwardedDocumentEvents(authToken, myBoxId, request);
foreach (var forwardEvent in response.Events)
{
var docInfo = forwardEvent.ForwardedDocument.DocumentWithDocflow.DocumentInfo;
Console.WriteLine("Document type: {0}, number: {1}, date: {2}", docInfo.DocumentType,
docInfo.DocumentDateAndNumber.DocumentNumber, docInfo.DocumentDateAndNumber.DocumentDate);
}
if (response.Events.Count == 0)
break;
request.AfterIndexKey = response.Events.Last().IndexKey;
}
См. также
- Другие методы для работы с событиями:
GetEvent — возвращает информацию о конкретном событии
GetLastEvent — возвращает последнее событие в ящике
GetNewEvents — возвращает ленту событий в ящике