GetForwardedDocumentEvents

Метод GetForwardedDocumentEvents возвращает список событий пересылки документов в указанный ящик.

POST /V2/GetForwardedDocumentEvents
Query Parameters:
  • boxId – идентификатор ящика организации.

Request Headers:
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 — возвращает ленту событий в ящике