Работа с сервером

Если у вас нет сервера, вы можете переопределить методы сервиса Backend и вернуть промис данных с клиента.

Сервис Backend

Бэкенд это серверная модель, объект, у которого есть методы для отправки запросов.
Ознакомьтесь с полным списком методов.

Как переопределить Backend сервис

Чтобы переписать бэкенд, необходимо:

  • унаследовать его;
  • использовать свойство override.
class MyBackend extends userManager.services.Backend {
    // новые методы 
}
 
webix.ui({
    view: "usermanager",
    url: "//localhost:3200/",
    override: new Map([[userManager.services.Backend, MyBackend]]),
});

Запросы к бэкенд серверу

Вы можете отправлять AJAX запросы своему серверу:

class MyBackend extends userManager.services.Backend {
  addUser(data) {
    return webix.ajax("//localhost:3200/users", { data })
      .then((data) => data.json());
  }
}

Работы с данными на клиенте

Если у вас есть данные на клиенте, вы можете вернуть их промисом:

class MyBackend extends userManager.services.Backend {
  logsMeta() {
    return Promise.resolve({
      audit:{
        "1":{"name":"User login","target":"user"},
        "2":{"name":"Role added","target":"role"},
        "3":{"name":"Role data changed","target":"role"}
      }
    });
  }
}

Методы Backend сервиса

get(path)

Это вспомогательный метод, который используется при всех запросах к данным. Метод создаёт GET запрос с заданным путём и возвращает промис.

Parameters:

  • path (string) - относительный путь.

Returns:

  • promise (promise) - промис с данными.

save(path, data, mode)

Этот вспомогательный метод вызывается при всех операциях сохранения данных. Метод создаёт POST/DELETE/PUT запрос (зависит от действия пользователя).

Parameters:

  • path (string) - относительный путь
  • data (object) - объект данных операции
  • mode (number) - режим, при котором 0, 1 или 2 указывают на запросы: POST, DELETE или PUT соответственно

Returns:

  • promise (promise) - промис с данными.

users()

Метод возвращает путь к Users.

Returns:

  • users (promise) - промис, который возвращает массив объектов пользователей

Request info:

  • Method: GET
  • URL example:
http://localhost:3200/users

Содержит URL сегмент.

Response from the server:

Сервер возвращает массив объектов с данными о пользователях.

[
  {"id":87,"name":"Berni Mayour","email":"","details":"",
  "visited":"2020-05-21T10:02:06Z","registered":"2020-05-21T10:02:06Z",
  "avatar":"http://localhost:3200/users/87/avatar/503723673.jpg",
  "status":1},
 
  {"id":95,"name":"John Doe","email":"","details":"",
  "visited":"2020-05-31T17:21:12Z","registered":"2020-05-31T17:21:12Z",
  "avatar":"","status":0}
]

addUser(data)

Метод добавляет нового пользователя.

Parameters:

  • data (object) - данные пользователя

Returns:

  • id (promise) - промис, который возвращает объект с ID нового пользователя

Request info:

  • Method: POST
  • URL example:
http://localhost:3200/users

Содержит URL сегмент.

Response from the server:

Сервер возвращает объект с ID нового пользователя.

{"id":99}

Request Payload example:

{
  name: "Walter Scott"
}

deleteUser(id)

Метод удаляет заданного пользователя.

Parameters:

  • id (string) - ID пользователя

Returns:

  • id (promise) - промис, который возвращает объект с ID удалённого пользователя

Request info:

  • Method: DELETE
  • URL example:
http://localhost:3200/users/98

Содержит URL сегмент и ID пользователя.

Response from the server:

Сервер возвращает объект с ID удалённого пользователя.

{"id":98}

updateUser(id, data)

Метод обновляет данные пользователя.

Parameters:

  • id (string) - ID пользователя
  • data (object) - новые данные

Returns:

  • id (promise) - промис, который возвращает объект с ID обновлённого пользователя

Request info:

  • Method: PUT
  • URL example:
http://localhost:3200/users/99

Содержит URL сегмент и ID пользователя.

Response from the server:

Сервер возвращает объект с ID обновлённого пользователя.

{"id":98}

Request Payload example:

{
  avatar: ""
  details: ""
  email: "elly.soyer@example.com"
  id: 98
  name: "Elly Soyer"
  registered: "2020-05-31T17:42:34Z"
  status: 1
  visited: "2020-05-31T17:42:34Z"
}

roles()

Метод возвращает путь к Roles.

Returns:

  • roles (promise) - промис, который возвращает массив объектов ролей

Request info:

  • Method: GET
  • URL example:
http://localhost:3200/roles

Содержит URL сегмент.

Response from the server:

Сервер возвращает массив объектов с данными о ролях.

[
  {"id":1,"name":"The Creator","color":"#00a037","details":""},
  {"id":2,"name":"Sales","color":"#e7a90b","details":""},
  {"id":3,"name":"Admin","color":"#038cd9","details":""}
]

addRole(data)

Метод добавляет новую роль.

Parameters:

  • data (object) - данные роли

Returns:

  • id (promise) - промис, который возвращает объект с ID новой роли

Request info:

  • Method: POST
  • URL example:
http://localhost:3200/roles

Содержит URL сегмент.

Response from the server:

Сервер возвращает объект с ID новой роли.

{"id":5}

Request Payload exaple:

{
  name: "Manager"
}

deleteRole(id)

Метод удаляет заданную роль.

Parameters:

  • id (string) - ID роли

Returns:

  • id (promise) - промис, который возвращает объект с ID удалённой роли

Request info:

  • Method: DELETE
  • URL example:
http://localhost:3200/roles/3

Содержит URL сегмент и ID удалённой роли.

Response from the server:

Сервер возвращает объект с ID удалённой роли.

{"id":3}

updateRole(id, data)

Метод обновляет данные роли.

Parameters:

  • id (string) - ID роли
  • data (object) - новые данные

Returns:

  • id (promise) - промис, который возвращает объект с ID обновлённой роли

Request info:

  • Method: PUT
  • URL example:
http://localhost:3200/roles/7

Содержит URL сегмент и ID обновлённой роли.

Response from the server:

Сервер возвращает объект с ID обновлённой роли.

{"id":7}

Request Payload example:

{
  color: "#006EDD"
  details: ""
  id: 7
  name: "Designer"
  rules: [7, 1]
}

rules()

Метод возвращает путь к права доступа.

Returns:

  • rules (promise) - промис, который возвращает массив объектов прав доступа

Request info:

  • Method: GET
  • URL example:
http://localhost:3200/rules

Содержит URL сегмент.

Response from the server:

Сервер возвращает массив объектов с данными о правах доступа.

[
  {"id":1,"short":"CanSeeUsers","long":"Can see user details and access levels"},
  {"id":2,"short":"CanEditUsers","long":"Can modify user details and access levels"},
  {"id":3,"short":"CanAdminProjects","long":"Can create projects"}
]

meta()

Метод возвращает метаданные о пользователях, ролях и правах.

Returns:

  • meta (promise) - промис, который возвращает объект связей между пользователями, ролями и правами

Request info:

  • Method: GET
  • URL example:
http://localhost:3200/meta

Содержит URL сегмент.

Response from the server:

Сервер возвращает объект с информацией о том, как связаны между собой пользователи, роли и права. Структура объекта следующая:

{
  "RoleRule":[[3,1]],
  "UserRole":[[4,3]], // пользователю с ID: 4 присвоена роль с ID: 3
  "UserRule":[[2,6]]
}

avatar(id)

Метод вызывается при загрузки нового аватара.

Parameters:

  • id (string) - ID пользователя

Returns:

  • data (object) - объект с данными аватара

Request info:

  • Method: POST
  • URL example:
http://localhost:3200/users/95/avatar

Содержит URL сегменты и ID пользователя.

Response from the server:

Сервер возвращает объект с данными аватара.

{
  "status":"server",
  "value":"http://localhost:3200/users/95/avatar/photo.jpg"
}

credentials(id)

Метод вызывается, когда пользователь переходит в зону редактирования.

Parameters:

  • id (string) - ID пользователя

Returns:

  • data (promise) - промис, который возвращает массив с учётными данными пользователя

Request info:

  • Method: GET
  • URL example:
http://localhost:3200/user/87/credentials

Содержит URL сегменты и ID пользователя.

addCredentials(id, data)

Метод добавляет пользователю учётные данные.

Parameters:

  • id (string) - ID пользователя
  • data (object) - новые данные

Returns:

  • id (promise) - промис, который возвращает объект с ID новых учётных данных

Request info:

  • Method: POST
  • URL example:
http://localhost:3200/user/100/credentials

Содержит URL сегменты и ID пользователя.

Response from the server:

Сервер возвращает ID новых учётных данных.

{"id":100}

Request Payload example:

{
  record: "test"
  source: 1
  user_id: 100
}

resetPassword(id, data)

Метод вызывается при изменении пароля.

Parameters:

  • id (string) - ID пользователя
  • data (object) - новый пароль

Returns:

  • id (promise) - промис, который возвращает объект с ID нового пароля

Request info:

  • Method: PUT
  • URL example:
http://localhost:3200/user/100/credentials

Содержит URL сегменты и ID пользователя.

Response from the server:

Сервер возвращает объект с ID нового пароля.

{"id":100}

Request Payload example:

{
  id: 23
  record: "qwerty123"
}

Содержит ID и текст пароля.

deleteCredentials(id, credId)

Метод вызывается при удалении учётных данных.

Parameters:

  • id (string) - ID пользователя
  • credId (string) - ID учётных данных

Returns:

  • id (promise) - промис, который возвращает объект с ID учётных данных

Request info:

  • Method: DELETE
  • URL example:
http://localhost:3200/user/100/credentials/23

Содержит URL сегменты, ID пользователя и ID учётных данных.

Response from the server:

Сервер возвращает объект с ID учётных данных.

{"id":23}

logs(type, id)

Метод вызывается, когда пользователь переходит в раздел аудита и выбирает одну из опций (logins, changes to или changes by)

Parameters:

  • type (string) - тип записей (login, user или by-user)
  • id (string) - ID пользователя

Returns:

  • data (promise) - промис, который возвращает массив объектов аудита

Request info:

  • Method: GET
  • URL example:
http://localhost:3200/logs/by-user/100

Содержит URL сегмент, тип записей и ID пользователя.

Response from the server:

Сервер возвращает массив объектов аудита . Ниже представлен аудит записей changes to .

[
  {"id":506,"user_id":1,"target_id":87,"type":5,
  "details":"Berni Mayour","date":"2020-05-21T10:02:06Z"},
  {"id":524,"user_id":1,"target_id":87,"type":6,
  "details":"role Guest added","date":"2020-05-21T14:36:56Z"}
]

logsMeta()

Метод вызывается, когда пользователь переходит в область аудита.

Returns:

  • data (promise) - промис, который возвращает массив выполненных в приложении действий

Request info:

  • Method: GET
  • URL example:
http://localhost:3200/logs/meta

Содержит URL сегменты.

Response from the server:

Сервер возвращает массив объектов аудита по выполненным в User Manager действиям.

{
  "1":{"name":"User login","target":"user"},
  "2":{"name":"Role added","target":"role"},
  "3":{"name":"Role data changed","target":"role"},
}
Наверх