Перейти к содержанию

Документы

Страница "Документы" предоставляет пайщику список пакетов документов с его участием. Пакеты документов содержат в себе заявления, протоколы решений и сопутствующие документы, если таковые имеются (например, акты приема-передачи, и т.д.). Каждый пакет документов может быть развернут для чтения содержимого и просмотра состояния цифровой подписи на каждом отдельном документе.

документы пайщика

Разработчикам

Канонические имена полей и типов — в файле components/controller/schema.gql монорепозитория; интерактивно — в документации GraphQL-API.

Список документов

🛠️ SDK: Queries.Documents.GetDocuments | Query.getDocuments

import { Queries } from '@coopenomics/sdk';

const variables: Queries.Documents.GetDocuments.IInput = {
  data: {
    actions?: <null | DocumentAction[]>;
    after_block?: <null | number>;
    before_block?: <null | number>;
    filter: <any>;
    limit?: <null | number>;
    page?: <null | number>;
    type?: <null | string>;
    username: <string>;
  };
};

const { [Queries.Documents.GetDocuments.name]: result } = await client.Query(
  Queries.Documents.GetDocuments.query,
  { variables }
);

Результат:

interface IOutput {
  getDocuments: {
    currentPage: <number>; // Текущая страница
    items: <{
        acts: <{
            action?: {
              account: <string>;
              account_ram_deltas: <{
                  account: <string>;
                  delta: <number>;
                }[]>;
              action_ordinal: <number>;
              actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
              authorization: <{
                  actor: <string>;
                  permission: <string>;
                }[]>;
              block_id: <string>;
              block_num: <number>;
              chain_id: <string>;
              console: <string>;
              context_free: <boolean>;
              creator_action_ordinal: <number>;
              data: <unknown>; // Данные действия в формате JSON
              elapsed: <number>;
              global_sequence: <string>;
              name: <string>;
              receipt: {
                abi_sequence: <number>;
                act_digest: <string>;
                auth_sequence: <{
                    account: <string>;
                    sequence: <string>;
                  }[]>;
                code_sequence: <number>;
                global_sequence: <string>;
                receiver: <string>;
                recv_sequence: <string>;
              };
              receiver: <string>;
              transaction_id: <string>;
            };
            documentAggregate?: {
              document: {
                doc_hash: <string>;
                hash: <string>;
                meta: <unknown>;
                meta_hash: <string>;
                signatures: <{
                    id: <number>;
                    is_valid?: <... | ... | ... | ...>;
                    meta: <unknown>;
                    public_key: <string>;
                    signature: <string>;
                    signed_at: <string>;
                    signed_hash: <string>;
                    signer: <string>;
                    signer_certificate?: <... | ...>; // Сертификат подписанта (сокращенная информация)
                  }[]>;
                version: <string>;
              };
              hash: <string>;
              rawDocument?: {
                binary: <string>; // Бинарное содержимое документа (base64)
                full_title: <string>; // Полное название документа
                hash: <string>; // Хэш документа
                html: <string>; // HTML содержимое документа
                meta: <unknown>; // Метаданные документа
              };
            };
          }[]>; // Массив объект(ов) актов с агрегатами, относящихся к заявлению
        decision?: {
          action: {
            account: <string>;
            account_ram_deltas: <{
                account: <string>;
                delta: <number>;
              }[]>;
            action_ordinal: <number>;
            actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
            authorization: <{
                actor: <string>;
                permission: <string>;
              }[]>;
            block_id: <string>;
            block_num: <number>;
            chain_id: <string>;
            console: <string>;
            context_free: <boolean>;
            creator_action_ordinal: <number>;
            data: <unknown>; // Данные действия в формате JSON
            elapsed: <number>;
            global_sequence: <string>;
            name: <string>;
            receipt: {
              abi_sequence: <number>;
              act_digest: <string>;
              auth_sequence: <{
                  account: <string>;
                  sequence: <string>;
                }[]>;
              code_sequence: <number>;
              global_sequence: <string>;
              receiver: <string>;
              recv_sequence: <string>;
            };
            receiver: <string>;
            transaction_id: <string>;
          };
          documentAggregate: {
            document: {
              doc_hash: <string>;
              hash: <string>;
              meta: <unknown>;
              meta_hash: <string>;
              signatures: <{
                  id: <number>;
                  is_valid?: <null | boolean>;
                  meta: <unknown>;
                  public_key: <string>;
                  signature: <string>;
                  signed_at: <string>;
                  signed_hash: <string>;
                  signer: <string>;
                  signer_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат подписанта (сокращенная информация)
                }[]>;
              version: <string>;
            };
            hash: <string>;
            rawDocument?: {
              binary: <string>; // Бинарное содержимое документа (base64)
              full_title: <string>; // Полное название документа
              hash: <string>; // Хэш документа
              html: <string>; // HTML содержимое документа
              meta: <unknown>; // Метаданные документа
            };
          };
          votes_against: <{
              account: <string>;
              account_ram_deltas: <{
                  account: <string>;
                  delta: <number>;
                }[]>;
              action_ordinal: <number>;
              actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
              authorization: <{
                  actor: <string>;
                  permission: <string>;
                }[]>;
              block_id: <string>;
              block_num: <number>;
              chain_id: <string>;
              console: <string>;
              context_free: <boolean>;
              creator_action_ordinal: <number>;
              data: <unknown>; // Данные действия в формате JSON
              elapsed: <number>;
              global_sequence: <string>;
              name: <string>;
              receipt: {
                abi_sequence: <number>;
                act_digest: <string>;
                auth_sequence: <{
                    account: <string>;
                    sequence: <string>;
                  }[]>;
                code_sequence: <number>;
                global_sequence: <string>;
                receiver: <string>;
                recv_sequence: <string>;
              };
              receiver: <string>;
              transaction_id: <string>;
            }[]>;
          votes_for: <{
              account: <string>;
              account_ram_deltas: <{
                  account: <string>;
                  delta: <number>;
                }[]>;
              action_ordinal: <number>;
              actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
              authorization: <{
                  actor: <string>;
                  permission: <string>;
                }[]>;
              block_id: <string>;
              block_num: <number>;
              chain_id: <string>;
              console: <string>;
              context_free: <boolean>;
              creator_action_ordinal: <number>;
              data: <unknown>; // Данные действия в формате JSON
              elapsed: <number>;
              global_sequence: <string>;
              name: <string>;
              receipt: {
                abi_sequence: <number>;
                act_digest: <string>;
                auth_sequence: <{
                    account: <string>;
                    sequence: <string>;
                  }[]>;
                code_sequence: <number>;
                global_sequence: <string>;
                receiver: <string>;
                recv_sequence: <string>;
              };
              receiver: <string>;
              transaction_id: <string>;
            }[]>;
        };
        links: <{
            document: {
              doc_hash: <string>;
              hash: <string>;
              meta: <unknown>;
              meta_hash: <string>;
              signatures: <{
                  id: <number>;
                  is_valid?: <null | boolean>;
                  meta: <unknown>;
                  public_key: <string>;
                  signature: <string>;
                  signed_at: <string>;
                  signed_hash: <string>;
                  signer: <string>;
                  signer_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат подписанта (сокращенная информация)
                }[]>;
              version: <string>;
            };
            hash: <string>;
            rawDocument?: {
              binary: <string>; // Бинарное содержимое документа (base64)
              full_title: <string>; // Полное название документа
              hash: <string>; // Хэш документа
              html: <string>; // HTML содержимое документа
              meta: <unknown>; // Метаданные документа
            };
          }[]>; // Массив связанных документов с агрегатами, извлечённых из мета-данных
        statement?: {
          action: {
            account: <string>;
            account_ram_deltas: <{
                account: <string>;
                delta: <number>;
              }[]>;
            action_ordinal: <number>;
            actor_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат пользователя (сокращенная информация)
            authorization: <{
                actor: <string>;
                permission: <string>;
              }[]>;
            block_id: <string>;
            block_num: <number>;
            chain_id: <string>;
            console: <string>;
            context_free: <boolean>;
            creator_action_ordinal: <number>;
            data: <unknown>; // Данные действия в формате JSON
            elapsed: <number>;
            global_sequence: <string>;
            name: <string>;
            receipt: {
              abi_sequence: <number>;
              act_digest: <string>;
              auth_sequence: <{
                  account: <string>;
                  sequence: <string>;
                }[]>;
              code_sequence: <number>;
              global_sequence: <string>;
              receiver: <string>;
              recv_sequence: <string>;
            };
            receiver: <string>;
            transaction_id: <string>;
          };
          documentAggregate: {
            document: {
              doc_hash: <string>;
              hash: <string>;
              meta: <unknown>;
              meta_hash: <string>;
              signatures: <{
                  id: <number>;
                  is_valid?: <null | boolean>;
                  meta: <unknown>;
                  public_key: <string>;
                  signature: <string>;
                  signed_at: <string>;
                  signed_hash: <string>;
                  signer: <string>;
                  signer_certificate?: <({ username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | null | undefined; inn: string; } | { username: string; type: AccountType; first_name: string; last_name: string; middle_name?: string | ... 1 more ... | undefined; } | { ...; }) & {}>; // Сертификат подписанта (сокращенная информация)
                }[]>;
              version: <string>;
            };
            hash: <string>;
            rawDocument?: {
              binary: <string>; // Бинарное содержимое документа (base64)
              full_title: <string>; // Полное название документа
              hash: <string>; // Хэш документа
              html: <string>; // HTML содержимое документа
              meta: <unknown>; // Метаданные документа
            };
          };
        };
      }[]>; // Элементы текущей страницы
    totalCount: <number>; // Общее количество элементов
    totalPages: <number>; // Общее количество страниц
  };
}

Поиск документов

🛠️ SDK: Queries.Search.SearchDocuments | Query.searchDocuments

Полнотекстовый поиск по документам кооператива

import { Queries } from '@coopenomics/sdk';

const variables: Queries.Search.SearchDocuments.IInput = {
  data: {
    limit?: <number>;
    query: <string>;
  };
};

const { [Queries.Search.SearchDocuments.name]: result } = await client.Query(
  Queries.Search.SearchDocuments.query,
  { variables }
);

Результат:

interface IOutput {
  searchDocuments: <ISearchResult[]>;
}

Класс для подписи содержимого документов: 🛠️ Classes.Document.