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

BackendService#

Наследник класса Service. Содержит меотды для взаимодействия с сервисами.

Методы#

clearRolesCache#

Очищает закешированные на сервере роли пользователя. Метод доступен только для администратора.

clearRolesCache(args)
параметр тип описание
args object Объект с параметрами
args.orgId string number Идентификатор организации, в которой будут удалятся роли для указанного userName и shift. Обязательный параметр. Если передать '*', то будут учитываться все организации.
args.userName string Логин пользователя, для которого будут удалены роли (включая закешированные роли при работе в режиме замещения). Если передать '*', то будут удалены роли всех пользователей
args.shift string Логин замещаемого пользоателя. Для всех пользователей будут удалены роли замещаемого пользоавтеля. Если передать '*', то будут удалены все роли замещения.

Метод возвращает Deferred-объект

Пример удаления ролей в организации 1 для пользователя 'user'
1
2
3
this.services.backend.clearRolesCache({ orgId: 1, userName: 'user' }).done(() => {
  console.log('Запрос выполнен')
})
Пример удаления ролей в организации 1 для пользователя 'user' и ролей пользователя 'user' для тех, кто его замещает
1
2
3
this.services.backend.clearRolesCache({ orgId: 1, userName: 'user', shift: 'user' }).done(() => {
  console.log('Запрос выполнен')
})
Пример удаления всех ролей во всех организациях
1
2
3
this.services.backend.clearRolesCache({ orgId: '*', userName: '*' }).done(() => {
  console.log('Запрос выполнен')
})

createUser#

Метод для создания пользователей

createUser(args)
параметр тип описание
args object Объект с параметрами
args.id string идентификатор пользователя
args.firstName string имя пользователя
args.lastName string фамилия пользователя
args.middleName string отчество пользователя
args.orgId string идентификатор организации
args.password string пароль пользователя
args.phoneNumber string телефон пользователя
args.userName string логин пользователя
args.email string email пользователя
args.isDomain string флаг доменный пользователя
args.provider string имя провайдера
args.externalAccount string
args.linkedDomainName string доменное имя. Требуется для SSO аутентификации (имя указывается в формате: имя_пользователя@домен. Например: s_ivanov@univers)
args.users array массив юзеров
args.snils string снилс пользователя
args.disableTwoFactorAuthentication string отключить двухфакторную аутентификацию
args.disablePasswordExpiration string
args.twoFactorProvider string провайдер двухфакторной аутентификации
Пример создания пользователя
    const data = this.controls.grid.getSelectedObjects()[0]
    const login = 'CreatedUser' + data.VCode()
    const password = 'CreatedUser' + data.VCode()
    const orgId = this.services.access.availableOrganizations.find(element => {
      return element.name === 'externalReg'
    }).id
    this.services.backend.createUser({
      userName: login,
      password: password,
      firstName: data.FirstName(),
      lastName: data.LastName(),
      middleName: data.MiddleName(),
      email: data.Email(),
      orgId: orgId
    })

createUsers#

Метод для создания нескольких пользователей

createUsers(args)
параметр тип описание
users array Массив юзеров
users.args object Объект с параметрами
users.args.id string идентификатор пользователя
users.args.firstName string имя пользователя
users.args.lastName string фамилия пользователя
users.args.middleName string отчество пользователя
users.args.orgId string идентификатор организации
users.args.password string пароль пользователя
users.args.phoneNumber string телефон пользователя
users.args.userName string логин пользователя
users.args.email string email пользователя
users.args.isDomain string флаг доменный пользователя
users.args.provider string имя провайдера
users.args.externalAccount string
users.args.linkedDomainName string доменное имя. Требуется для SSO аутентификации (имя указывается в формате: имя_пользователя@домен. Например: s_ivanov@univers)
users.args.users array массив юзеров
users.args.snils string снилс пользователя
users.args.disableTwoFactorAuthentication string отключить двухфакторную аутентификацию
users.args.disablePasswordExpiration string
users.args.twoFactorProvider string провайдер двухфакторной аутентификации
Пример создания нескольких пользователей
    const objects = this.controls.adUsers.getSelectedObjects()
      const token = {}
      PageBlocker.on(token)
      const domain = this.controls.domain.value
      const users = objects.map((obj) => {
        return {
          firstName: obj.firstName,
          lastName: obj.lastName,
          middleName: obj.middleName,
          email: obj.email,
          phoneNumber: obj.phoneNumber,
          userName: obj.login,
          defaultOrg: this.data.Id(),
          isDomain: true,
          linkedDomainName: domain ? `${obj.login}@${domain}` : null,
          roles: obj.roles
        }
      })
      this.services.backend.createUsers(users).done(() => {
        const data = this.controls.adUsers.dataSource
        objects.forEach((obj) => {
          data.splice(data.indexOf(obj), 1)
        })
        this.controls.adUsers.dataSource = data
      }).done(() => {
        PageBlocker.on()
        this.reloadData().always(() => {
          PageBlocker.off()
        })
      }).always(() => {
        PageBlocker.off(token)
      })

sendEmail#

Метод для отправки письма на почту

sendEmail(message, accountId)
параметр тип описание
message object Объект с параметрами
message.To string получатели сообщения
message.Subject string тема сообщения
message.Body string Тело письма
message.Cc Array Получатели копии
message.Bcc Array Получатели скрытой копии
message.IsBodyHtml string Флаг, означающий, что тело письма задано в формате html
message.Priority string Приоритет. Допустимые значения: low, normal, high
message.ReplyTo Array Адреса для ответа
message.Attachments Array Список идентификаторов прилагаемых файлов
message.Zip bool если true, то вложения будут добавлены в zip-архив.
message.ZipName string имя для zip-архива.
message.object object Объект с информацией о передаваемом сообщении, сохраняемым в lex.log
accountId string Идентификатор аккаунта, с которого будет отправлено письмо. Если не задан, то письмо отправляется с аккаунта по умолчанию

Метод возвращает Deferred-объект

Отправка письма через ящик по умолчанию
    this.services.backend.sendEmail({
      To: ['user@server.domain'],
      Subject: 'test',
      Body: '123',
      object: { test: 'test' }
    }).done(function () {
      console.log('сообщение отправлено');
    }).fail(function (e) {
      //возникла ошибка
    });
Отправка письма через ящик с идентификатором accountId
1
2
3
4
5
6
7
8
9
    this.services.backend.sendEmail({
      To: ['user@server.domain'],
      Subject: 'test',
      Body: '123'
    }, 'accountId').done(function () {
      console.log('сообщение отправлено');
    }).fail(function (e) {
      //возникла ошибка
    });

Предупреждение

Метод не отправит письмо на email-адрес получателя, если в базе данных для всех учетных записей, к которым привязана эта почта, включен флаг DisableEmailNotifications: true (свойство описано в модели ecosoft-lexema8/lib/models/user.model.json). Если хотя бы для одного связанного аккаунта флаг отключен (или не задан), то письмо будет отправлено.

sendPushNotification#

Метод для отправки Push уведомлений

sendPushNotification(messages)
параметр тип описание
messages array массив, хранящий объект с 2 параметрами
messages.notification object объект, представляющий тело уведомления
messages.notification.title string строка, заголовок уведомления
messages.notification.body string строка, текст уведомления
messages.users object массив пользователей получателей уведомления. Может быть как строкой, так и объектом с полями
messages.users.userName string строка имя пользователя
messages.users.notificationCount number количество необработанных документов пользователем
Пример
1
2
3
4
5
6
    const messages = [{ notification: { title: 'title', body: 'user written notification' }, users: ['user1','user2'] }]
    this.services.backend.sendPushNotification(messages).done(info => {
      console.log('Сообщение отправлено')
    }).fail(e => {
      console.error(e)
    })

sendSMS#

Метод для отправки СМС

sendSMS(phone, text, object)
параметр тип описание
phone string номер телефона (в формате 71234567890, +71234567890 или 81234567890)
text string текст сообщения
object object объект с информацией о передаваемом сообщении, сохраняемым в lex.log

Метод возвращает Deferred-объект

Пример
1
2
3
4
5
    this.services.backend.sendSMS('89674582345','test',{ test: 'test' }).done(info => {
      console.log('Сообщение отправлено')
    }).fail(e => {
      console.error(e)
    })

sendBulkSMS#

Метод пакетной отправки смс-сообщений на номера телефонов. В зависимости от выбранного провайдера могут быть различные ограничения на максимальное количество сообщений, которые можно отправить одним запросом.

sendBulkSMS(messages)
параметр тип описание
users array Массив объектов
users.args object Объект с параметрами
users.args.phone string номер телефона (в формате 71234567890, +71234567890 или 81234567890)
users.args.text string текст сообщения

Метод возвращает Deferred-объект

Пример
    this.services.backend.sendBulkSMS([{
      phones: ['89871111111', '89872222222'],
      text: 'text 1'
    }, {
      phones: ['89871111111', '89872222222'],
      text: 'text 2'
    }]).done(info => {
      console.log('Сообщение отправлено')
    }).fail(e => {
      console.error(e)
    })