-
-
-
- Примеры
- API
Это старая версия документа!
| ok | Флаг успешности выполнения запроса | int |
| errors | Запись со списком ошибок запроса | [] |
{ ok: int, errors: [ { error: string, type: string }, ... ], ... }
| core | csrfError | CSRF токен не передан или передан неверный токен |
| core | tooManyRequests | Обнаружен флуд запросами. Данный ip адрес временно заблокирован. Поле delay указывает время, оставшееся до конца блокировки |
| core | forbidden | Данная операция запрещена для данного пользователя |
имя сайта/?option=com_wmartalpha&task=api.init
Инициализация сессии, получение токена
| csrfToken | csrf токен | string |
имя сайта/?option=com_wmartalpha&task=api.login
Авторизация пользователя
| login | Логин(email или номер телефона в 11-значном формате) | string обязательный |
| password | Пароль | string обязательный |
| remember | Запомнить пользователя | bool |
| user | Основные данные пользователя | объект User |
| login | incorrect | Формат логина указан неверно |
| login | unregistred | Пользователь с таким логином не зарегистрирован |
| password | wrong | Указан неверный пароль |
имя сайта/?option=com_wmartalpha&task=api.loginOAuth
Регистрация/авторизация в сторонних сервисах по протоколу OAuth. Результат данного запроса должен собран и отправлен от имени пользователя.
| service | Тип сервиса | Поддерживаемые типы: fb, google, vk, instagram, mailru, ok, vk,yandex |
| redirectUrl | url переадресации после авторизации | string |
| OAuthrequest | Объект, описывающий запрос | объект OAuthrequest |
| service | wrong | Сервис не существует или не подключен к системе |
имя сайта/?option=com_wmartalpha&task=api.logout
Завершение сессии пользователя
имя сайта/?option=com_wmartalpha&task=api.recover
Восстановление пароля пользователя. Перед процедурой регистрации необходимо запросить код подтверждения методом api.recoverCheck
| login | Логин(email или номер телефона в 11-значном формате) | string обязательный |
| password | пароль | string обязательный |
| passwordConfirm | подтверждение пароля | string обязательный |
| code | код подтверждения из email или sms | string обязательный |
| user | Основные данные пользователя | объект User |
| login | incorrect | Логин указан неверно |
| login | unregistered | Данный логин не зарегистрирован |
| password | incorrect | Пароль указан некорректно |
| passwordConfirm | incorrect | Подтверждение пароля указано некорректно |
| passwordConfirm | unmatch | Пароли не совпадают |
| code | wrong | Некорректный код подтверждения |
| code | outdated | Код подтверждения устарел, необходимо перезапросить |
имя сайта/?option=com_wmartalpha&task=api.recoverCheck
Получение кода подтверждения для регистрации.
| login | Логин(email или номер телефона в 11-значном формате) | string обязательный |
| delay | время, оставшееся до возможности запроса следующего кода подтверждения | float |
| login | incorrect | Логин указан неверно |
| login | unregistered | Данный логин не зарегистрирован |
| login | wait | Необходимо подождать, прежде чем запрашивать код подтверждения снова |
имя сайта/?option=com_wmartalpha&task=api.register
Регистрация пользователя. Перед процедурой регистрации необходимо запросить код регистрации методом api.registerCheck
| login | Логин(email или номер телефона в 11-значном формате) | string обязательный |
| password | пароль | string обязательный |
| passwordConfirm | подтверждение пароля | string обязательный |
| firstname | имя пользователя | string обязательный |
| lastname | фамилия пользователя | string обязательный |
| agree | согласие на обработку персональных данных | bool обязательный |
| code | код подтверждения из email или sms | string обязательный |
| user | Основные данные пользователя | объект User |
| login | incorrect | Логин указан неверно |
| login | registered | Данный логин уже зарегистрирован |
| agree | incorrect | Необходимо подтвердить обработку персональных данных |
| password | incorrect | Пароль указан некорректно |
| passwordConfirm | incorrect | Подтверждение пароля указано некорректно |
| passwordConfirm | unmatch | Пароли не совпадают |
| firstname | incorrect | Имя указано некорректно |
| lastname | incorrect | Фамилия указана некорректно |
| code | wrong | Некорректный код подтверждения |
| code | outdated | Код подтверждения устарел, необходимо перезапросить |
имя сайта/?option=com_wmartalpha&task=api.registerCheck
Получение кода подтверждения для регистрации.
| login | Логин(email или номер телефона в 11-значном формате) | string обязательный |
| delay | время, оставшееся до возможности запроса следующего кода подтверждения | float |
| login | incorrect | Логин указан неверно |
| login | registered | Данный логин уже зарегистрирован |
| login | wait | Необходимо подождать, прежде чем запрашивать код подтверждения снова |
имя сайта/?option=com_wmartalpha&task=api.passwordChange
Изменение пароля пользователя
| password | старый пароль | string |
| passwordNew | новый пароль | string |
| passwordNewConfirm | подтверждение пароля | string |
| password | wrong | Указан неверный пароль |
| passwordNew | incorrect | Пароль указан некорректно |
| passwordNewConfirm | incorrect | Подтверждение пароля указано некорректно |
| passwordNewConfirm | unmatch | Пароли не совпадают |
| lastname | incorrect | Фамилия указана некорректно |
| code | wrong | Некорректный код подтверждения |
| code | outdated | Код подтверждения устарел, необходимо перезапросить |
имя сайта/?option=com_wmartalpha&task=api.profileChange
Регистрация пользователя.
| firstname | имя пользователя | string |
| lastname | фамилия пользователя | string |
| sex | пол, 1 - мужской, 2 - женский | int |
| subjects | тематика | [string,string, …] |
| description | Описание | ?string |
| orgINN | ИНН организации | ?string |
| country | Страна | ?string |
| region | Регион | ?string |
| locality | Населенный пункт | ?string |
| firstname | incorrect | Имя указано некорректно |
| lastname | incorrect | Фамилия указана некорректно |
| sex | incorrect | Пол указан некорректно |
| subjects | incorrect | Тематика указана некорректно |
| description | incorrect | Описание указано некорректно |
| orgINN | incorrect | ИНН организации указан некорректно |
| country | incorrect | Страна указана некорректно |
| region | incorrect | Регион указан некорректно |
| locality | incorrect | Населенный пункт указан некорректно |
| user | Основные данные пользователя | объект User |
имя сайта/?option=com_wmartalpha&task=api.userinfo
Получение информации о текущем пользователе
| user | Основные данные пользователя | объект User |
имя сайта/?option=com_wmartalpha&task=api.reference
Получить значения из справочника
| reference | Алиас справочника (доступны: subjects,country,region,locality) | string |
| parentId | id родительского значения из связанного справочника (например: отношение населенных пунктов к региону) | ?int |
| start | Отступ выбираемых элементов | ?int |
| limit | Количество выбираемых элементов | ?int |
| search | Строка для поиска | ?string |
| values | Массив элементов справочника | [{id:int,value:string},{id:int,value:string}, …] |
| values.id | id элемента | int |
| values.value | значение элемента | string |
| reference | incorrect | Справочник не существует |
имя сайта/?option=com_wmartalpha&task=api.usersFilter
Получить свойства и значения для фильтрации
| propQuery | Запрос свойств | Массив объектов filterQuery | |
| ?listQuery | Запрос элементов | объект [xhr_api#listQuery | listQuery]] |
| props | Cвойствa и значения | Массив объектов props |
| property | incorrect | Свойство не существует |
Объект, описывающий OAuth запрос
| url | url запроса | string |
| method | Метод | string |
| params | Передаваемые переменные | {} |
{ url: string, method: string, params: { param1: value1, param2: value2, ... } }
Запрос свойств
| id | id свойства | int |
| title | Имя свойства | string |
| alias | Алиас свойства | string |
| ?count | Количество элементов с данным свойством | int |
| ?values | Массив значений свойства | [] |
| values.id | id значения свойства | string |
| values.alias | alias значения свойства | string |
| values.value | Массив значений свойства | string |
| values.?count | Количество элементов с данным значением свойства | int |
{ id: int, title: string, alias: string, ?values: [ { id: int, value: string, alias: string, ?count: int, }, ... ] }
Запрос свойств. Планируется, что структура объекта будет общая для всех фильтрующихся элементов. Для свойства необходимо указать id либо алиас.
| ?id | id свойства | int |
| ?alias | Алиас свойства | string |
| ?count | Подсчет количества элементов по свойству | bool |
| ?format | формат значений. Доступно: list. Если не указан - значения свойства не возвращаются | string |
{ ?id: int, ?alias: string, ?count: bool, ?format: string, }
Запрос выборки по элементам. Для свойства необходимо указать id или алиас. Для значения должен быть задан один или несколько признаков.
| ?props | Массив выбранных свойств | string |
| props ?id | id свойства | string |
| props ?alias | Алиас свойства | string |
| props values | Массив выбранных значений свойства | [] |
| props values ?id | id значения | [] |
| props values ?alias | alias значения | [] |
| props values ?min | min значение для числовых или датовых свойств | float/datetime |
| props values ?search | Строка для поиска по свойству | string |
| props values ?value | значение свойства | string |
| ?search | Строка для поиска по основным свойствам | string |
| ?start | Отступ выбираемых элементов | bool |
| ?limit | Количество выбираемых элементов | bool |
| ?sort | Порядок сортировки | string |
| ?direction | Направление сортировки asc или desc | string |
{ ?props: { { ?id: int, ?alias: string, values: [ { ?id: int, ?alias: string, ?min: float/datetime, ?max: float/datetime, ?search: string, ?value: string }, ... ] }, ... } ?search: string, ?limit: int, ?start: int, ?sort: string, ?direction: string, }
Информация о пользователе
| id | id пользователя | int |
| registered | пользователь зарегистрирован | bool |
| login | Проритетный логин | string |
| firstname | Имя | string |
| lastname | Фамилия | string |
| fullname | Полное имя | string |
| sex | Пол (1-мужской, 2 - женский) | int |
| description | Описание | string |
| subjects | Массив объектов свойства-справочника Тематика | [{referenceId: int,value: string}, …] |
| orgINN | ИНН организации | string |
| orgTitle | Название организации | string |
| country | Объект свойства-справочника страна | {referenceId: int,value: string} |
| region | Объект свойства-справочника регион | {referenceId: int,value: string} |
| locality | Объект свойства-справочника населенный пункт | {referenceId: int,value: string} |
| loginData | Массив данных авторизации пользователя | [] |
| loginData.type | тип логина | string |
| loginData.login | Массив данных авторизации пользователя | string |
{ id: int, registered: bool, ?login: string, ?firstname: string, ?lastname: string, ?fullname: string, ?sex: int, ?description: string, ?subjects: [ { referenceId: int, value: string }, ... ], ?orgINN: string, ?orgTitle: string, ?country: { referenceId: int, value: string }, ?region: { referenceId: int, value: string }, ?locality: { referenceId: int, value: string }, loginData: [ { type: string, login: string }, ... ], }
function cookieGet(name) { var matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; }; function cookieSet(name, value, options) { options = options || {}; var expires = options.expires; if (!options.path) options.path = '/'; if (typeof expires == "number" && expires) { var d = new Date(); d.setTime(d.getTime() + expires * 1000); expires = options.expires = d; } if (expires && expires.toUTCString) { options.expires = expires.toUTCString(); } value = encodeURIComponent(value); var updatedCookie = name + "=" + value; for (var propName in options) { updatedCookie += "; " + propName; var propValue = options[propName]; if (propValue !== true) { updatedCookie += "=" + propValue; } } document.cookie = updatedCookie; return true; } function request(method,data,func){ data = JSON.stringify(data); //for Payload let csrfToken=cookieGet('csrfToken'); let xhr = new XMLHttpRequest(); xhr.open('POST', 'https://fetch.melissa.team/?task=api.'+method); xhr.setRequestHeader('csrf-token', csrfToken); //xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); //for FormData xhr.setRequestHeader('Content-type', 'application/json;charset=UTF-8'); //for Payload xhr.responseType = 'json'; xhr.withCredentials = true; xhr.onload = function() { if (xhr.status != 200) { console.error('connection error'); } else { if(xhr.response.errors){ if(xhr.response.errors.core==='tooManyRequests'){ console.error('flood detect. wait ' + xhr.response.data.delay); return false; } if(xhr.response.errors.core==='csrfError'){ console.error('wrong csrf token'); return false; } } if(typeof(func)==='function'){ func(xhr.response); } if(xhr.response.csrfToken){ cookieSet('csrf_token', xhr.response.csrfToken); } } }; xhr.send(data); } //Инициализация request('init'); //Авторизация request('login',{login:'a1@lct.su', password:'12345'},data=>{ console.log(data) }); //Получение информации о текущем пользователе request('userinfo','',data=>{ console.log(data) });