@it-enterprise/web-agent
v1.30.1045
Published
IT-Enterprise. Web agent
Downloads
23
Keywords
Readme
Description
API для взаимодействия с установленным на клиентской машине специальным приложением - "IT-Enterprise. WebAgent" или "Master. WebAgent"
Установка
npm install @it-enterprise/web-agent
Использование API
Создание экземпляра web-агента
var version = '{"Version":"'+ /* версия пакета */ + '","OfficeViewer":'+ /* тип просмотрщика */ +',"Office365Site":'+ /* сайт Office365 */ +',"Project":"' + /* проект */ + '","UserLogin":"' + /* логин пользователя */ + '"}'
var agent = new WebAgent(version, needCalcHashes);
Ключи OfficeViewer
, Office365Site
, Project
и UserLogin
нужны для интеграции агента с Office365.
OfficeViewer
- тип просмотрщика документов.""
- открывать приложением по умолчанию на клиенте"O"
- загружать в Office 365
Office365Site
- путь к сайту Office365Project
- код проекта (glbproject)UserLogin
- логин пользователя в системе
needCalcHashes
- проверять хеши файлов агента (для обновления агента до версии web-сервера)
Вызов любой функции обращения к web-агенту
Для вызова любой функции агента (скачивание/загрузка файлов, печать, сканирование и т.д.) для начала необходимо вызвать функцию Ping для проверки доступности агента:
agent.ping(callback, updateCallback, checkId, onerror, waitForRestart);
callback
- действие, вызываемое после ответа агента. Структура:function (state, message, installAgent, exception) {}
state
- состояние агента. Тип перечисления -agent.agentStates
:available
- агент доступен.notLaunched
- агент не запущен или не установлен.oldVersion
- используется старая версия - ошибка при обработке ответа.updateIssues
- ошибка при попытке обновления агента.oldLauncher
- используется старая версия программы обновления агента.setNewPorts
- необходимо запомнить порты агента для текущего пользователя.canNotBeEnabled
- невозможно использование агента (клиент на linux-системе).
message
- в случае, когда:state === agent.agentStates.updateIssues
- это сообщение об ошибке (string
).state === agent.agentStates.setNewPorts
- это Json-объект с портами ({ Http: http, Https: https }
).
installAgent
- не используетсяexception
- ошибка при попытке обновления
updateCallback
- действие при обновлении агента. Структура:function (current, total, message) {}
current
- текущий процент обновленияtotal
- максимальный процент обновленияmessage
- сообщение при обновлении
checkId
- проверять PID (актуально, если агент обновляется и еще не запустил новый процесс)onerror
- действие, вызываемое при ошибке обращения к агенту. Структура:function (exception) {}
waitForRestart
- сейчас идет процесс ожидания обновления (запуска нового процесса) агента
Редактирование файла на клиенте
agent.editFile(params, onSuccess, onError, onWait, returnData);
params
- параметры для редактирования файла. Структура класса:file
- имя файла.fileUrl
- URL для вызова запроса в web-агенте для скачивания файла. Дополнительно в методе автоматически будут переданы протокол, хост и порт текущего URL`а в браузере (window.location.origin
) и строка, содержащая первый '/' после хоста с последующим текстом URL`а (window.location.pathname
) для составления полного URL скачивания файла в web-агенте.clientPath
- путь к папке с файлом на клиенте.download
- загрузить файл на клиенте (файл не был передан на клиент заранее).readOnly
- не используется.application
- приложение для открытия файла. Если пусто - используется приложение по умолчанию.wait
- ждать окончания редактирования файла.delAfterUse
- удалить файл после окончания редактирования.uploadToServer
- загрузить файл на web-сервер после редактированияcookies
- куки web-сервера (нужны для корректного вызова запроса в web-агенте для скачивания файла с web-сервера на клиент)
onSuccess
- действие при успешном редактировании файла. Структура:function () {}
onError
- действие, вызываемое при ошибке редактировании файла. Структура:function (exception) {}
onWait
- действие при ожидании окончания редактирования файла (файл на клиенте открылся). Структура:function (name, path) {}
name
- путь к файлуpath
- не используется
returnData
- вызвать действиеonSuccess
, передавая в него строку-ответ агента. Иначе - вызвать загрузку файла на web-сервере (необходимо наличие специльного метода). Структура строки ответа - "{1};{2};{3}":- 1 - результат редактирования файла ('-' - ошибка; '*' - файл был открыт, откредактирован и закрыт (если в параметраз передали
wait = true
); '+' - файл успешно открыт). - 2 - текст ошибки, если 1 == '-' и не удалось создать файл; имя файла, если 1 == '*'; путь к файлу, если 1 == '+' или 1 == '-' и файл удалось создать, но не открыть.
- 3 - путь к папке, если 1 == '*'.
- 1 - результат редактирования файла ('-' - ошибка; '*' - файл был открыт, откредактирован и закрыт (если в параметраз передали
Загрузка файлов на клиентский компьютер
agent.transferClientFiles(files, index, success, error, callback);
files
- коллекия файлов для передаче. Стуктура класса каждого файла:FileName
- имя файла на клиентеDestFolder
- путь к папке на клиентеOpen
- открыть файл на клиенте после передачиDeleteAfterUse
- удалить после того, как закончится работа с файлом на клиентеFileInfo
- настройки файла. Структура класса:LastModified
- дата последнего изменения файла (тип System.DateTime)Attributes
- атрибуты файла (тип System.IO.FileAttributes)
Cookies
- куки web-сервера (нужны для корректного вызова запроса в web-агенте для скачивания файла с web-сервера на клиент)PartialDownloadUrl
- URL для вызова запроса в web-агенте для скачивания файла. Дополнительно в методе автоматически будут переданы протокол, хост и порт текущего URL`а в браузере (window.location.origin
) и строка, содержащая первый '/' после хоста с последующим текстом URL`а (window.location.pathname
) для составления полного URL скачивания файла в web-агенте
index
- индекс текущего файла в коллекцииfiles
success
- действие при успешной передаче всех файлов. Структура:function () {}
error
- действие, вызываемое при ошибке передачи файла. Структура:function (exception) {}
callback
- действие при успешной передаче текущего файла. Структура:function (current, total) {}
current
- текущий процент передачи файловtotal
- максимальный процент передачи файлов
Загрузка файлов с клиентского компьютера на web-севрер
agent.uploadFilesToServer(files, onSuccess, onError, index, returnData);
files
- коллекция файлов, которые необходимо загрузить с клиента. Стуктура класса каждого файла:File
- путь к файлу на клиентеDeleteSourceFile
- удалить файл на клиенте после загрузкиLoadAsBase64
- загрузить содержимое файла как base64 строку
onSuccess
- действие при успешной передаче всех файлов. Структура:function () {}
onError
- действие, вызываемое при ошибке передачи файла. Структура:function (exception) {}
index
- индекс текущего файла в коллекцииfiles
.returnData
- вызвать действиеonSuccess
, передавая в него индекс текущего файла в коллекции и строку-ответ агента. Иначе - вызвать загрузку файла на web-сервере (необходимо наличие специльного метода). Строка ответа - это содержимое файла (Stream).
Печать файлов и отчетов RDL
Автоматически при вызове печати файла будет произведена попытка печати средствами брузера.
agent.print(params, onSuccess, onError, isReport);
params
- параметры файлов для печати. Структура класса:file
- файл, который необходимо распечатать. Структура класса файла такая же, как при загрузке файлов на клиентский компьютер.files
- коллекция файлов для печати. Стуктура класса каждого файла такая же, как при загрузке файлов на клиентский компьютер.showDialog
- отобразить диалог печатиcookies
- куки web-сервера (нужны для корректного вызова запроса в web-агенте для скачивания файла с web-сервера на клиент)
onSuccess
- действие при успешной печати всех файлов. Структура:function () {}
onError
- действие, вызываемое при ошибке печати файлов. Структура:function (exception) {}
isReport
- признак печати отчета
Сканирование файлов
agent.scan(params, onSuccess, onError, returnData);
params
- параметры сканирования. Структура класса:sd
- отобразить диалог выбора сканера на рабочей станцииss
- использовать потоковое сканированиеmr
- максимально допустимая разрешающая способность в dpist
- выбор режима выгрузки (PDF/JPEG/TIFF)sm
- режим сканирования (ч/б, цветное, градация серого)nd
- бездиалоговый режим сканированияrd
- изменить порядок страниц после сканирования (только при сканировании в pdf)
onSuccess
- действие при успешном сканировании. Структура:function (fileName) {}
fileName
- имя сканированного файла
onError
- действие, вызываемое при ошибке печати файлов. Структура:function (exception) {}
returnData
- вызвать действиеonSuccess
, передавая в него содержимое сканированного файла и имя файла. Иначе - вызвать загрузку файла на web-сервере (необходимо наличие специльного метода). Содержимое сканированного файла в формате FormData, второй аргумент - имя сканированного файла.
Сравнение файлов
agent.compareDocuments(params, onSuccess, onError);
params
- параметры сравнения. Структура класса:file1
- путь к файлу на клиентеfile2
- путь к файлу на клиенте
onSuccess
- действие при успешном вызова программы сравнения файлов. Структура:function () {}
onError
- действие, вызываемое при ошибке вызова программы сравнения файлов. Структура:function (exception) {}
Выбор папки на клиентском компьютере
agent.browseFolder(params, onSuccess, onError);
params
- параметры вызова диалога проводника. Структура класса:Title
- заголовок окна проводникаPath
- путь к начальному каталогу
onSuccess
- действие при успешном выборе папки. Структура:function (ret) {}
ret
- путь к выбранной папке
onError
- действие, вызываемое при ошибке выбора папки. Структура:function (exception) {}
Вызов диалога сохранения/выбора файла на клиентском компьютере
agent.saveFile(params, onSuccess, onError);
params
- параметры вызова диалога проводника. Структура класса:Title
- заголовок окна проводникаFilter
- фильтр отображаемых файловAllFiles
- признак "Все файлы"FileName
- имя файла, выбранное в окне проводника
onSuccess
- действие при успешном выборе папки. Структура:function (ret) {}
ret
- путь к файлу
onError
- действие, вызываемое при ошибке вызова диалога сохранения файла. Структура:function (exception) {}
Получить информацию о файле на клиентском компьютере (с диалогом выбора файла)
agent.getClientFileInfo(params, onSuccess, onError);
params
- параметры вызова диалога проводника. Структура класса:Filter
- фильтр отображаемых файловAllFiles
- признак "Все файлы"Multy
- возможность выбора нескольких файловTitle
- заголовок окна проводникаInitialDirectory
- путь к начальному каталогуSendToServer
- отправить файл на сервер после выбораFileLoadFilter
- коллекция разрешенных/запрещенных расширений файлов. Структура класса:AllowedExtensions
- список разрешенных расширенийDeniedExtensions
- список запрещенных расширений
onSuccess
- действие при успешном выборе папки. Структура:function (files) {}
files
- список выбранных файлов через '*'
onError
- действие, вызываемое при ошибке вызова диалога сохранения файла. Структура:function (exception) {}
Вызова диалога выбора пользователя на клиентской машине
agent.ShowUserPicker(args, onSuccess, onError);
args
- возможность выбора нескольких пользователей ('+'/'-')onSuccess
- действие при успешном выборе папки. Структура:function (ret) {}
ret
- для каждого выбранного пользователя: "sid,name,domain,accountName,sidHex". Разделитель между выбранными пользователями - ";"
onError
- действие, вызываемое при ошибке вызова диалога сохранения файла. Структура:function (exception) {}
Запуск процесса на клиенте
agent.startProcess(params, onSuccess, onError);
params
- параметры запуска процесса. Структура класса:workingDirectory
- рабочий каталогfileName
- имя файлаerrorMessage
- сообщение, которое выдать при сбое запуска приложения на клиентеarguments
- аргументы командной строкиwaitTimeout
- таймаут ожиданияsilentMode
- тихий режим (без выдачи сообщений об ошибках)runAsAdmins
- запустить процесс в режиме администратораadditionalProps
- только для процесса 'winmergeu'. Структура класса:File1
- путь к файлуFile2
- путь к файлуFile1Url
- URL для вызова запроса в web-агенте для скачивания файла.File2Url
- URL для вызова запроса в web-агенте для скачивания файла.
process
- только для процесса 'winmergeu'. Имя процесса - "merge"cookies
- куки web-сервера (нужны для корректного вызова запроса в web-агенте для скачивания файла с web-сервера на клиент)
onSuccess
- действие при успешном выборе папки. Структура:function (ret) {}
ret
- результат запуска процесса. Структура класса:Success
- удачный запуск процессаExitCode
- код возврата процессаProcessId
- PIDStartTime
- дата-время, когда процесс стартовал
onError
- действие, вызываемое при ошибке вызова диалога сохранения файла. Структура:function (exception) {}
Сервисный вызов на клиенте (для получения %TEMP%, информации о файле/папке; копирования/перемещения файла/папки и т.д.)
agent.serviceRequest(args, onSuccess, onError);
args
- аргументы вызова. Структура класса:request
- тип вызова.args
- аргументы вызова.- Варианты вызова (всё вызывается на клиенте):
request = 'GetTemp'
- получить путь %TEMP%.args
- не нужны.request = 'FileInfo'
- получить информацию о файле.request = 'DirectoryInfo'
- получить информацию о папке. Структураargs
:FileName
- путь к файлу или каталогу.DirInfo
- получить информацию о каталоге (true\false)ResultType
- режим поиска:- 1 - искать только файлы.
- 2 - искать только каталоги.
- 3 - искать файлы и каталоги.
SearchDeep
- глубина поиска:- 0 - без ограничений.
- 1 - искать только в текущем каталоге (по умолчанию).
- n - искать на n уровней по отношению к текущему каталогу.
SearchSilent
- не выдавать сообщения об ошибкеFileExtensions
- маска для поиска файлов (например, '*.txt')
request = 'RunCmd'
- запуск cmd.exe. Структураargs
:Command
- команда для выполнения в cmd.exeTimeout
- таймаут ожидания выполнения cmd.
request = 'DeleteFile'
- удалить файл или каталог. Структураargs
:Files
- файл/файлы/папка для удаления. Может быть путем к файлу, коллекцией путей к файлам или папкам. Если удаление папки, то в конце пути необходимо добавить '\'
request = 'MoveDirectory'
- переместить папку.request = 'MoveFile'
- переместить файл. Структураargs
:SourcePath
- путь откуда перемещатьDestPath
- путь куда перемещать
request = 'CopyFile'
- скопировать файл. Структураargs
:SourcePath
- путь откуда копироватьDestPath
- путь куда копировать
request = 'CreateDirectory'
- создать папку. Структураargs
:Path
- путь к папке
request = 'GetHelpPath'
- получить путь хранения файлов клиентской документации.args
- не нужны.request = 'CanUpdateHelp'
- проверить возможно ли обновление клиентской документации.args
- не нужны.request = 'ConvertFileByPdmFilesConverter'
- конвертировать файл средствами конкретной CAD системы. Структураargs
:sourceFile
- путь к исходному файлуoutFile
- путь к файлу после конвертацииlogFile
- путь к файлу для логирования
- Варианты вызова (всё вызывается на клиенте):
onSuccess
- действие при успешном обращении к агенту. Структура:function (data) {}
data
- ответ агента. Варианты структуры ответа:request === 'GetTemp'
- путь к каталогу.request === 'FileInfo'
илиrequest === 'DirectoryInfo'
- информация о файле/папке и информации о файлах в ней. Структура класса:FileName
- путь к файлу (только для получения информации о файле).FileSize
- размер файла в байтах (только для получения информации о файле).FileTime
- строка, содержащая дату последней корректировки файла/папки в виде 'yyyyMMddHHmmss'.FileInfos
- коллекция с информацией о файлах в папке (только для получения информации о папке). Структура класса каждого файла:RelativePath
- путь относительно папки, о которой запрашивается информация.Name
- имя файла (без пути).Modified
- строка, содержащая дату последней корректировки файла/папки в виде 'yyyyMMddHHmmss'.Size
- размер файла в байтах.IsFile
- текущий объект - файл.
request === 'RunCmd'
- результат запуска. Структура класса:Success
- удачный запуск командной строки.Result
- строка с ответом (стандартным выводом) cmd.
request === 'MoveDirectory'
илиrequest === 'MoveFile'
илиrequest === 'CopyFile'
илиrequest === 'CreateDirectory'
- результат перемещения/копирования/создания. Структура класса:Success
- перемещение прошло успешно
request === 'GetHelpPath'
- путь к каталогу.request === 'CanUpdateHelp'
- признак возможности обновления (true\false)request === 'ConvertFileByPdmFilesConverter'
- результат конвертирования (true\false)
onError
- действие, вызываемое при ошибке вызова. Структура:function (exception) {}
Получение портов на которых работает агент (для терминального режима)
agent.getPortForCurrentUser(nextFunc, callback, onerror);
nextFunc
- действие, вызываемое после успешной найденных портов. Структура:function () {}
callback
- действие с обработкой состояния агента (подробнее о состоянии агента). Структура:function (state, message, installAgent, exception) {}
onerror
- действие, вызываемое при ошибке поиска портов. Структура:function (exception) {}