72
функционал по работе с правами на файлы будет выделен в отдельный микро
сервис со своим API и моделями данных.
Основные сценарии взаимодействия UI компонента и микро сервисов бизнес-
логики
3. Получение и просмотр списка файлов на карточке документа
UI компонент через «IAttachments» получает указатель на объект контроллера
«Attachments». С помощью метода «List» компонент получает список
метаданных файлов по документу в виде вектора моделей «FileInfo». Внутри
метода запускается задача на синхронизацию метаданных с облаком, а затем
возвращается результат из кэша. После окончания синхронизации будет
вызываться UI callback, который UI сторона может передать в контроллер через
метод «SetDataRefreshCallback».
У модели «FileInfo» есть поле mPreviewUrl, которое для обычных вложений
содержит шаблонную ссылку для скачивания файла превью вложения. В
качестве шаблона можно задать размеры превью через %d/%d/.
В случае требуемых вложений mPreviewUrl будет содержать ссылку на
скачивания файла заглушки.
4. Отображение содержимого файлов
UI компонент через «IAttachments» получает указатель на объект контроллера
«Attachments». UI вызывает метод «ReadAttachment» для получения модели
данных «FileData». Модель данных содержит информацию о теле файла: размер
файла mSize и относительный путь до расположения файла на мобильном
устройстве mLocalUrl. В случае если файл еще не был скачан ранее в кэш, то
будет запущена задача на скачивание. В таком случае в модели «FileData»
будет пустое поле mLocalUrl, а вернется mOperationId – идентификатор
операция для получения событий о результате скачивания вложения. Список
событий описан ниже:
const on_download_operation_success: string = "OnDownloadOperationSuccess";
сonst on_download_operation_failed: string = "OnDownloadOperationFailed";