Введение

Ссылка на API:

https://api.look-prod.ru/web/index.php

В ссылке обязательно должен присутствовать параметр r в котором указывается путь до метода к которому вы обращаетесь.

Для проверки доступа используется GET-араметр auth содержащий имя пользователя и ключ доступа этого пользователя.
Пример:
auth=admin:YdZ2jtC4aXXXXXXXXXXXXXXXXXXXPc1SSWa

Пример:

https://api.look-prod.ru/web/index.php?r=api/get-user-by-username&username=name&auth=admin:YdZ2jtC4aXXXXXXXXXXXXXXXXXXXPc1SSWa

Возвращаемые данные

API всегда возвращает валидный объект JSON
В случае ошибки в объекте всегда возвращается свойство status: false и error: "Данные ошибки. Объект, массив или строка"


  • Version: 1.0
  • Author: PTeam
  • Created: 31 января, 2024
  • Update: Только что...

Методы добавляются в документацию по мере создания.


Работа со странами Контроллер Api

Объект страны


{
    "id": 5, // ID страны
    "name": "CountryQ", // Название страны
    "shortName": "testuytyuytyuttu", // Краткое название страны
    "alpha2": "tt", // Двубуквенный международный код страны
    "alpha3": "ttt", // Трёхбуквенный международный код страны
    "iso": 111 // Код страны по ISO
}
                        

Получение списка стран

Возвращает список стран

api/get-countries GET

Возвращаемые данные


[
    {
        "id": 5,
        "name": "CountryQ",
        "shortName": "testuytyuytyuttu",
        "alpha2": "tt",
        "alpha3": "ttt",
        "iso": 111
    },
    {
        "id": 7,
        "name": "CountryW",
        "shortName": "qwe",
        "alpha2": "qw",
        "alpha3": "wqe",
        "iso": 222
    }
]
                        

Получение одной страны по её ID

Возвращает объект страны по запрошенному ID

api/get-country-by-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемой страны Да

Возвращаемые данные


{
    "id": 5, // ID страны
    "name": "CountryQ", // Название страны
    "shortName": "testuytyuytyuttu", // Краткое название страны
    "alpha2": "tt", // Двубуквенный международный код страны
    "alpha3": "ttt", // Трёхбуквенный международный код страны
    "iso": 111 // Код страны по ISO
}
                        

Добавление страны

Добавляет новую страну в БД

api/set-country POST

Принимаемые параметры

Параметр Тип Описание Обязательный
name string(150) Полное название (Уникальный) Да
shortName string(50) Сокращённое название (Уникальный) Да
alpha2 string(2) Двухбуквенный код страны (Уникальный) Да
alpha3 string(3) Трёхбуквенный код страны (Уникальный) Да
iso int(3) Код страны по ISO (Уникальный) Да

Возвращаемые данные


{"status": true}
                        

Обновление страны

Обновляет страну в БД

api/update-country POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемой страны. Передаётся GET параметром Да
name string(150) Полное название (Уникальный) Да
shortName string(50) Сокращённое название (Уникальный) Да
alpha2 string(2) Двухбуквенный код страны (Уникальный) Да
alpha3 string(3) Трёхбуквенный код страны (Уникальный) Да
iso int(3) Код страны по ISO (Уникальный) Да

Возвращаемые данные


{"status": true}
                        

Удаление страны

Обновляет страну в БД

api/del-country POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID удаляемой страны. Передаётся GET параметром Да

Возвращаемые данные


{"status": true}
                        

Работа с городами Контроллер Api

Объект города


{
    "id": 5, // ID города
    "country_id": 16 // ID страны в которой находится город
    "name": "Москва", // Название города
}
                        

Получение списка городов

Возвращает список городов

api/get-cities GET

Возвращаемые данные


[
    {
        "id": 5, // ID города
        "country_id": 16, // ID страны в которой находится город
        "name": "Москва", // Название города
    },
    {
        "id": 6, // ID города
        "country_id": 16, // ID страны в которой находится город
        "name": "Казань", // Название города
    }
]
                        

Получение одного города по его ID

Возвращает объект города по запрошенному ID

api/get-city-by-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемого города Да

Возвращаемые данные


{
    "id": 5, // ID города
    "country_id": 16, // ID страны в которой находится город
    "name": "Москва", // Название города
}
                        

Добавление города

Добавляет новый город в БД

api/set-city POST

Принимаемые параметры

Параметр Тип Описание Обязательный
country_id int(11) ID страны в которой находится город Да
name string(150) Название города Да

Возвращаемые данные


{"status": true}
                        

Обновление города

Обновляет город в БД

api/update-city POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемого города. Передаётся GET параметром Да
country_id int(11) ID страны в которой находится город Да
name string(150) Название города Да

Возвращаемые данные


{"status": true}
                        

Удаление города

Удаляет город из БД

api/del-city POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID удаляемого города. Передаётся GET параметром Да

Возвращаемые данные


{"status": true}
                        

Работа со станциями метро Контроллер Api

Объект метро


{
    "id": 5, // ID метро
    "city_id": 16, // ID городв в котором находится метро
    "name": "Серпуховская", // Название станции
}
                        

Получение списка станций

Возвращает список станций

api/get-metros GET

Возвращаемые данные


[
    {
        "id": 5, // ID метро
        "city_id": 16, // ID городв в котором находится метро
        "name": "Серпуховская", // Название станции
    },
    {
        "id": 6, // ID метро
        "city_id": 16, // ID городв в котором находится метро
        "name": "Краснопресненская", // Название станции
    }
]
                        

Получение одной станции по её ID

Возвращает объект метро по запрошенному ID

api/get-metro-by-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемой станции Да

Возвращаемые данные


{
    "id": 6, // ID метро
    "city_id": 16, // ID городв в котором находится метро
    "name": "Краснопресненская", // Название станции
}
                        

Получение списка станций по ID города в котором они находятся

Возвращает массив объектов метро по запрошенному ID города

api/get-metro-by-city-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID города в котором находится запрашиваемые станции Да

Возвращаемые данные


[
    {
        "id": 5, // ID метро
        "city_id": 16, // ID городв в котором находится метро
        "name": "Серпуховская", // Название станции
    },
    {
        "id": 6, // ID метро
        "city_id": 16, // ID городв в котором находится метро
        "name": "Краснопресненская", // Название станции
    }
]
                        

Добавление станции

Добавляет новую станцию в БД

api/set-metro POST

Принимаемые параметры

Параметр Тип Описание Обязательный
city_id int(11) ID города в котором находится станция Да
name string(150) Название станции Да

Возвращаемые данные


{"status": true}
                        

Обновление станции

Обновляет станцию в БД

api/update-metro POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемой станции. Передаётся GET параметром Да
city_id int(11) ID города в котором находится станция Да
name string(150) Название станции Да

Возвращаемые данные


{"status": true}
                        

Удаление станции

Удаляет станцию из БД

api/del-metro POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID удаляемой станции. Передаётся GET параметром Да

Возвращаемые данные


{"status": true}
                        

Работа с категориями Контроллер Api

Объект категории


{
    "id": 5, // ID метро
    "name": "Индивидуалки", // Название категории
    "description": "Индивидуалки всякие-разные", // Описание категории
}
                        

Получение списка категорий

Возвращает список категорий

api/get-categories GET

Возвращаемые данные


[
    {
        "id": 5, // ID метро
        "name": "Индивидуалки", // Название категории
        "description": "Индивидуалки всякие-разные", // Описание категории
    },
    ...
]
                        

Получение одной категории по её ID

Возвращает объект категории по запрошенному ID

api/get-category-by-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемой категории Да

Возвращаемые данные


{
    "id": 5, // ID метро
    "name": "Индивидуалки", // Название категории
    "description": "Индивидуалки всякие-разные", // Описание категории
}
                        

Добавление категории

Добавляет новую категорию в БД

api/set-category POST

Принимаемые параметры

Параметр Тип Описание Обязательный
name string(150) Название категории Да
description string(1500) Описание категории Нет

Возвращаемые данные


{"status": true}
                        

Обновление категории

Обновляет категорию в БД

api/update-category POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемой категории. Передаётся GET параметром Да
name string(150) Название категории Нет
description string(1500) Описание категории Нет

Возвращаемые данные


{"status": true}
                        

Удаление категории

Удаляет категорию из БД

api/del-category POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID удаляемой категории. Передаётся GET параметром Да

Возвращаемые данные


{"status": true}
                        

Работа со статусами анкет Контроллер Api

Объект статуса анкеты


{
    "id": 5, // ID статуса
    "name": "Активна", // Название статуса
}
                        

Получение списка статусов

Возвращает список статусов

api/get-profile-status GET

Возвращаемые данные


[
    {
        "id": 5, // ID статуса
        "name": "Активна", // Название статуса
    },
    ...
]
                        

Получение одного статуса по ID

Возвращает объект статуса по запрошенному ID

api/get-profile-status-by-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемого статуса Да

Возвращаемые данные


{
    "id": 5, // ID статуса
    "name": "Активна", // Название статуса
}
                        

Добавление статуса в БД

Добавляет новый статус в БД

api/set-profile-status POST

Принимаемые параметры

Параметр Тип Описание Обязательный
name string(150) Название статуса Да

Возвращаемые данные


{"status": true}
                        

Обновление статуса

Обновляет статус в БД

api/update-profile-status POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемого статуса. Передаётся GET параметром Да
name string(150) Название статуса Нет

Возвращаемые данные


{"status": true}
                        

Удаление статуса

Удаляет статус из БД

api/del-profile-status POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID удаляемого статуса. Передаётся GET параметром Да

Возвращаемые данные


{"status": true}
                        

Работа со услугами анкет Контроллер Api

Объект услуги анкеты


{
    "id": 5, // ID услуги
    "name": "Массаж", // Название услуги
    "price": 500000, // Цена в копейках
    "category_id": 1, // Категория услуги
}
                        

Получение списка услуг

Возвращает список услуг с добавлением расшифровки категории

api/get-profile-services GET

Возвращаемые данные


[
    {
        "id": 5, // ID услуги
        "name": "Массаж", // Название услуги
        "price": 500000, // Цена в копейках
        "category_id": 5, // Категория услуги
        "category":{ //Объект категории услуг
            "id": 5, // ID категории
            "name": "Массаж", // Название категории
        }
    },
    ...
]
                        

Получение одной услуги по ID

Возвращает объект услуги по запрошенному ID с добавлением расшифровки категории

api/get-profile-service-by-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемой услуги Да

Возвращаемые данные


{
    "id": 5, // ID услуги
    "name": "Массаж", // Название услуги
    "price": 500000, // Цена в копейках
    "category_id": 5, // Категория услуги
    "category":{ //Объект категории услуг
        "id": 5, // ID категории
        "name": "Массаж", // Название категории
    }
}
                        

Добавление услуги в БД

Добавляет новую услугу в БД

api/set-profile-service POST

Принимаемые параметры

Параметр Тип Описание Обязательный
name string(150) Название услуги Да
price int Стоимость услуги в копейках Да
category_id int (11) ID категории услуги Да

Возвращаемые данные


{"status": true}
                        

Обновление услуги

Обновляет услугу в БД

api/update-profile-service POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемой услуги. Передаётся GET параметром Да
name string(150) Название услуги Нет
price int Стоимость услуги в копейках Нет
category_id int (11) ID категории услуги Нет

Возвращаемые данные


{"status": true}
                        

Удаление услуги

Удаляет услугу из БД

api/del-profile-service POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID удаляемой услуги. Передаётся GET параметром Да

Возвращаемые данные


{"status": true}
                        

Работа с валютами Контроллер Api

Объект валюты


{
    "id": 5, // ID валюты
    "symbol": "$", // Знак валюты. Например "$"
    "name": "Доллар", // Название валюты
    "alpha3": "USD", // Трёхсимвольный код валюты
    "number3": 840, // Цифровой код валюты
}
                        

Получение списка валют

Возвращает список валют

api/get-currencies GET

Возвращаемые данные


[
    {
        "id": 5, // ID валюты
        "symbol": "$", // Знак валюты. Например "$"
        "name": "Доллар", // Название валюты
        "alpha3": "USD", // Трёхсимвольный код валюты
        "number3": 840, // Цифровой код валюты
    },
    ...
]
                        

Получение одной валюты по её ID

Возвращает объект валюты по запрошенному ID

api/get-currency-by-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемой валюты Да

Возвращаемые данные


{
    "id": 5, // ID валюты
    "symbol": "$", // Знак валюты. Например "$"
    "name": "Доллар", // Название валюты
    "alpha3": "USD", // Трёхсимвольный код валюты
    "number3": 840, // Цифровой код валюты
}
                        

Добавление валюты

Добавляет новую валюту в БД

api/set-currency POST

Принимаемые параметры

Параметр Тип Описание Обязательный
symbol string (1) Знак валюты. Например "$" Да
name string(50) Название валюты Да
alpha3 string(3) Трёхсимвольный код валюты Да
number3 string(50) Цифровой код валюты Да

Возвращаемые данные


{"status": true}
                        

Обновление валюты

Обновляет валюту в БД

api/update-currency POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемой валюты. Передаётся GET параметром Да
symbol string (1) Знак валюты. Например "$" Нет
name string(50) Название валюты Нет
alpha3 string(3) Трёхсимвольный код валюты Нет
number3 string(50) Цифровой код валюты Нет

Возвращаемые данные


{"status": true}
                        

Удаление валюты

Удаляет валюту из БД

api/del-currency POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID удаляемой валюты. Передаётся GET параметром Да

Возвращаемые данные


{"status": true}
                        

Работа со статусами отзывов Контроллер Api

Объект статуса отзыва


{
    "id": 5, // ID статуса
    "name": "Активен", // Название статуса
}
                        

Получение списка статусов

Возвращает список статусов

api/get-feedback-status GET

Возвращаемые данные


[
    {
        "id": 5, // ID статуса
        "name": "Активен", // Название статуса
    },
    ...
]
                        

Получение одного статуса по ID

Возвращает объект статуса по запрошенному ID

api/get-feedback-status-by-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемого статуса Да

Возвращаемые данные


{
    "id": 5, // ID статуса
    "name": "Активен", // Название статуса
}
                        

Добавление статуса в БД

Добавляет новый статус в БД

api/set-feedback-status POST

Принимаемые параметры

Параметр Тип Описание Обязательный
name string(150) Название статуса Да

Возвращаемые данные


{"status": true}
                        

Обновление статуса

Обновляет статус в БД

api/update-feedback-status POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемого статуса. Передаётся GET параметром Да
name string(150) Название статуса Нет

Возвращаемые данные


{"status": true}
                        

Удаление статуса

Удаляет статус из БД

api/del-profile-status POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID удаляемого статуса. Передаётся GET параметром Да

Возвращаемые данные


{"status": true}
                        

Работа с пользователями

Контроллер позволяет работать с пользователями


User

Объект описывает пользователя системы


{
    "id": 1221, // INT ID пользователя
    "username": "admin", //STRING Логин пользователя
    "password": "sdjkdghDKJDHF18", //STRING пароль пользователя
    "password_reset_token": "Z2jXXXXXXXXXXXXXuXKf0X", //STRING Токен сброса пароля
    "email": "admin@admin.admin", //STRING Email
    "status": 10, //INT Статус. 10 - активен
    "created_at": 1688999065, //INT - timestamp создания
    "updated_at": "1688999065", //INT - timestamp последнего обновления
    "auth_key": "YdZ2jXXXXXXXXXXXXXuXKf0XLv", // STRING Токен доступа
}
                        

Получение списка пользователей

Возвращает список пользователей с минимальным набором данных с возможностью постраничной разбивки

api-user/get-user-list GET

Принимаемые параметры

Параметр Тип Описание Обязательный
limit int Количество возвращаемых записей. По умолчанию 50 Нет
offset int Отступ от начала списка. По умолчанию null. Нет

Возвращаемые данные


[
    {
        "id": "1",
        "username": "admin"
    },
    {
        "id": "2",
        "username": "recipient"
    }
]
                        

Регистрация пользователя

Регистрирует пользователя.

api-user/register POST

Принимаемые параметры

Параметр Тип Описание Обязательный
username string Уникальный логин. Минимум 3 символа Да
password string 8 символов латиницей минимум, большие, маленькие, цифры Да
email string Валидный email уникальный по системе Да
role string Роль регистрируемого пользователя. Может быть user или girl. Да

Возвращаемые данные


{
    "status": true,
    "user": {
        "id": 1221, // INT ID пользователя
        "username": "admin", //STRING Логин пользователя
        "password": "sdjkdghDKJDHF18", //STRING пароль пользователя
        "password_reset_token": "Z2jXXXXXXXXXXXXXuXKf0X", //STRING Токен сброса пароля
        "email": "admin@admin.admin", //STRING Email
        "status": 10, //INT Статус. 10 - активен
        "created_at": 1688999065, //INT - timestamp создания
        "updated_at": "1688999065", //INT - timestamp последнего обновления
        "auth_key": "YdZ2jXXXXXXXXXXXXXuXKf0XLv", // STRING Токен доступа
    }
}
                        

Аутентификация пользователя

Аутентифицирует пользователя.

api-user/login POST

Принимаемые параметры

Параметр Тип Описание Обязательный
username string Уникальный логин. Минимум 3 символа Да
password string 8 символов латиницей минимум, большие, маленькие, цифры Да

Возвращаемые данные


{
    "status": true,
    "user": {
        "id": 1221, // INT ID пользователя
        "username": "admin", //STRING Логин пользователя
        "password": "sdjkdghDKJDHF18", //STRING пароль пользователя
        "password_reset_token": "Z2jXXXXXXXXXXXXXuXKf0X", //STRING Токен сброса пароля
        "email": "admin@admin.admin", //STRING Email
        "status": 10, //INT Статус. 10 - активен
        "created_at": 1688999065, //INT - timestamp создания
        "updated_at": "1688999065", //INT - timestamp последнего обновления
        "auth_key": "YdZ2jXXXXXXXXXXXXXuXKf0XLv", // STRING Токен доступа
    }
}
                        

Получение пользователя по данным доступа

api-user/get-user-by-access GET

Принимаемые параметры

Параметр Тип Описание Обязательный
username string Уникальный логин. Минимум 3 символа Да
auth_key string Токен доступа Да

Возвращаемые данные


{
    "id": 1221, // INT ID пользователя
    "username": "admin", //STRING Логин пользователя
    "password": "sdjkdghDKJDHF18", //STRING пароль пользователя
    "password_reset_token": "Z2jXXXXXXXXXXXXXuXKf0X", //STRING Токен сброса пароля
    "email": "admin@admin.admin", //STRING Email
    "status": 10, //INT Статус. 10 - активен
    "created_at": 1688999065, //INT - timestamp создания
    "updated_at": "1688999065", //INT - timestamp последнего обновления
    "auth_key": "YdZ2jXXXXXXXXXXXXXuXKf0XLv", // STRING Токен доступа
}
                        

Отправка токена сброса пароля на почту пользователя

Генерирует код для сброса пароля и отправляет пользователю письмо.

api-user/send-reset-token POST

Принимаемые параметры

Параметр Тип Описание Обязательный
email string Валидный email существующий в БД Да

Возвращаемые данные


{"status": true}
                        

Смена пароля по токену из письма

Заменяет пароль пользователя

api-user/reset-password POST

Принимаемые параметры

Параметр Тип Описание Обязательный
password_reset_token string Токен, полученный пользователем в письме Да
password string Новый пароль пользователя. 8 символов латиницей минимум, большие, маленькие, цифры Да

Возвращаемые данные


{"status": true}
                        

Добавление анкеты в избранное пользователя

Помимо добавления анкеты в избранное пользователю метод обновляет счётчик лайков в анкете

UserSaveGirl

Объект описывает запись в избранном пользователя

                        
{
    "id": 1221, // INT ID записи
    "user_id": 1, // INT ID пользователя
    "profile_id": 1, // INT ID анкеты
}
                    
                    

api-user/save-girl POST

Принимаемые параметры

Параметр Тип Описание Обязательный
user_id int (11) ID пользователя Да
profile_id int (11) ID анкеты Да

Возвращаемые данные


{"status": true}
                        

Получение избранного пользователя

Метод позволяет получить список сохранённых анкет с данными по каждой анкете

UserSaveGirl

Объект описывает запись в избранном пользователя

                        
{
    "id": 1221, // INT ID записи
    "user_id": 1, // INT ID пользователя
    "profile_id": 1, // INT ID анкеты
}
                    
                    

api-user/get-saved-profiles GET

Принимаемые параметры

Параметр Тип Описание Обязательный
limit int (11) Лимит выборки из базы. По умолчанию 4 Нет
offset int (11) Отступ выборки из базы для постраничного вывода. По умолчанию null Нет

Возвращаемые данные


[
    {
        "id": "1", // ID записи в базе
        "user_id": "1", // ID пользователя
        "profile_id": "189", // ID анкеты
        "date_add": "1707231752", // Дата добавления
        "girlProfile": { // Объект анкеты
            "id": "189",
            "user_id": "65",
            "category_id": "8",
            "name": "Динь",
            "age": "22",
            "height": "174",
            "breast": "2",
            "hair_color": "Блондинка",
            "metro": "218",
            "price_hour_app": "0",
            "price_two_hour_app": "0",
            "price_night_app": "0",
            "price_hour_exit": "15000",
            "price_two_hour_exit": "30000",
            "price_night_exit": "75000",
            "verify_photo": "1",
            "description": "Стану для тебя нежной, страстной ...",
            "tel": "79111061645",
            "tg": "",
            "date_add": "1706508061",
            "date_update": "1706508061",
            "whatsapp": "9111061645",
            "currency_id": "1",
            "city_id": "1",
            "status_id": "6",
            "author_id": "1",
            "activity": null,
            "category": {
                "id": "8",
                "name": "Инди",
                "description": ""
            },
            "photo": [
                {
                "id": "3752",
                "profile_id": "189",
                "type": "photo",
                "title": "i",
                "pic": "1476acc81b2f4aff164173b4b1fc25ae.jpg",
                "sort": "0"
                },
                ...
            ]
        }
    }
]
                        

Удаление анкеты из избранного пользователя

Помимо удаления анкеты из избранного метод обновляет счётчик лайков в анкете

UserSaveGirl

Объект описывает запись в избранном пользователя

                        
{
    "id": 1221, // INT ID записи
    "user_id": 1, // INT ID пользователя
    "profile_id": 1, // INT ID анкеты
}
                    
                    

api-user/unsave-girl POST

Принимаемые параметры

Параметр Тип Описание Обязательный
user_id int (11) ID пользователя Да
profile_id int (11) ID анкеты Да

Возвращаемые данные


{"status": true}
                        

Работа с анкетами

Контроллер позволяет работать с анкетами девочек


GirlProfile

Объект описывает анкету


{
    "id": 1221, // INT ID анкеты
    "user_id": 123, //ID пользователя. Владельца анкеты
    "category_id": 5, //ID категории анкеты
    "name": "Анна", //STRING Имя в анкете
    "age": 23, //INT возраст
    "height": 160, //INT рост
    "breast": 3, //INT бюст
    "hair_color": "Русый", //STRING цвет волос
    "metro": 4, //INT ID станции метро
    "price_hour_app": 500000, //INT Стоимость 1 часа в апартаментах в копейках
    "price_two_hour_app": 1000000, //INT Стоимость 2 часов в апартаментах в копейках
    "price_night_app": 5000000, //INT Стоимость ночи в апартаментах в копейках
    "price_hour_exit": 500000, //INT Стоимость 1 часа выезд в копейках
    "price_two_hour_exit": 1000000, //INT Стоимость 2 часов выезд в копейках
    "price_night_exit": 5000000, //INT Стоимость ночи выезд в копейках
    "verify_photo": 1, //INT проверено ли фото модераторами. 0 - нет 1 - да.
    "description": "Я самая самая...", //STRING о себе от лица владельца анкеты
    "tel": 76554112787, //INT номер телефона
    "whatsapp": 76554112787, //INT номер телефона в whatsapp
    "tg": "@lkjdsgiov | 74568546589", //STRING телеграм. Логин или телефон
    "currency_id": 1, //INT ID валюты использующейся в анкете
    "city_id": 1, //INT ID города в котором отображается анкета
    "status_id": 1, //INT ID статуса анкеты
    "author_id": 1, //INT ID пользователя создателя анкеты
    "date_add": 1, //INT timestamp даты создания анкеты
    "date_update": 1, //INT timestamp даты последнего обновления анкеты
}
                        

Получение списка анкет по параметрам.

Возвращает список анкет с возможностью постраничной разбивки и фильтрации по параметрам.
ВАЖНО!
Для равномерного распределения трафика метод получает для каждой анкеты объект статистики анкеты и выбирает данные отсортированные по количеству показов от меньшего к большему.

api-girl/get-profiles-list GET

Принимаемые параметры

Параметр Тип Описание Обязательный
category_id int ID категории анкеты Нет
user_id int ID пользователя. Владельца анкеты Нет
city_id int ID города. Нет
id int ID анкеты Нет
status_id int ID статуса анкеты Нет
author_id int ID пользователя. Создателя анкеты Нет
date_add string Дата создания анкеты. При указании параметра вернутся все анкеты после этой даты. Формат: YYYY-MM-DD Нет
date_end string Дата создания анкеты. При указании параметра вернутся все анкеты ДО этой даты. Формат: YYYY-MM-DD Нет
photo_size array Массив указывающий, какой размер фото должен быть возвращён вместе с анкетой. Пример:
['width' => 300, 'height' => 450]
По умолчанию : ['width' => 300, 'height' => 450]
Нет
order string Название поля для сортировки списка от меньшего к большему Нет
order_type string Порядок сортировки. Может быть asc или desc. По умолчанию asc Нет
limit int Количество возвращаемых записей. По умолчанию 20 Нет
offset int Отступ от начала списка. По умолчанию null. Нет

Возвращаемые данные


[
    "count": 652, // Общее количество анкет в базе по заданным параметрам
    {
        "id": 1221, // INT ID анкеты
        "user_id": 123, //ID пользователя. Владельца анкеты
        "category_id": 5, //ID категории анкеты
        "name": "Анна", //STRING Имя в анкете
        "age": 23, //INT возраст
        "height": 160, //INT рост
        "breast": 3, //INT бюст
        "hair_color": "Русый", //STRING цвет волос
        "metro": 4, //INT ID станции метро
        "price_hour_app": 500000, //INT Стоимость 1 часа в апартаментах в копейках
        "price_two_hour_app": 1000000, //INT Стоимость 2 часов в апартаментах в копейках
        "price_night_app": 5000000, //INT Стоимость ночи в апартаментах в копейках
        "price_hour_exit": 500000, //INT Стоимость 1 часа выезд в копейках
        "price_two_hour_exit": 1000000, //INT Стоимость 2 часов выезд в копейках
        "price_night_exit": 5000000, //INT Стоимость ночи выезд в копейках
        "verify_photo": 1, //INT проверено ли фото модераторами. 0 - нет 1 - да.
        "description": "Я самая самая...", //STRING о себе от лица владельца анкеты
        "tel": 76554112787, //INT номер телефона
        "whatsapp": 76554112787, //INT номер телефона в whatsapp
        "tg": "@lkjdsgiov | 74568546589", //STRING телеграм. Логин или телефон
        "currency_id": 1, //INT ID валюты использующейся в анкете
        "city_id": 1, //INT ID города в котором отображается анкета
        "status_id": 1, //INT ID статуса анкеты
        "author_id": 1, //INT ID пользователя создателя анкеты
        "date_add": 1, //INT timestamp даты создания анкеты
        "date_update": 1, //INT timestamp даты последнего обновления анкеты
        "stat":{ // Объект статистики анкеты
            "id": 1,
            "profile_id": 165,
            "view": 9,
            "like": 0,
            "dislike": 0
        },
        "activity": { // Объект активности пользователя владельца анкеты
            "id": "3",
            "user_id": "44",
            "status": "1",
            "last_activity": "1707150669"
        },
        "metro":{
            "id": 5, // ID метро
            "city_id": 16, // ID городв в котором находится метро
            "name": "Серпуховская", // Название станции
        },
        "city":{
            "id": 5, // ID города
            "country_id": 16 // ID страны в которой находится город
            "name": "Москва", // Название города
        },
        "shortUser": { // Сокращённый объект пользователя владельца анкеты
            "id": "123",
            "username": "Anchelika",
            "email": "Ghb@cffrf.com"
        },
        "photo": [ // Массив объектов фото привязанных к анкете
            {
            "id": "3252",
            "profile_id": "99",
            "type": "photo",
            "title": "i",
            "pic": "7794e5dfa7e187da8c48f1935aafec28.png",
            "sort": "0"
            },
            ...
        ],
        "video": { // Объект видео визитки анкеты
            "id": "40",
            "profile_id": "99",
            "type": "title",
            "title": "i",
            "name": "5ae7ac6384310d914e43be4bff98a566.mp4",
            "sort": "0"
        },
        "category": { //Объект категории анкеты
            "id": "4",
            "name": "Содержанки",
            "description": null
        },
        "status": { //Объект статуса анкеты
            "id": "5",
            "name": "Архивная"
        },
        "author": { // Объект пользователя создателя анкеты
            "id": "1",
            "username": "admin",
            "email": "admin@admin.admin"
        },

        "tags": [ //Массив объектов тегов привязанных к анкете
            {
                "id": 149,
                "tag_id": 19,
                "profile_id": 1509,
                "tag": {
                    "id": 19,
                    "name": "Анальный секс",
                    "pic": "/system/tag/987531b688def690dedeea68737ab35c.JPG",
                    "sort": 0,
                    "weight": 13
                }
            },
            ...
        ],
        schedule": [ //Массив объектов расписания на каждую дату для которой расписание установлено
            {
                "id": 44,
                "profile_id": 1509,
                "date": "2024-05-01",
                "status": 1
            },
            ...
        ]
        "isSaved": false // Добавлена ли анкета в избранное запросившего пользователя
    },
    ...
]
                        

Получение списка анкет по параметрам.

Возвращает список анкет с возможностью постраничной разбивки и фильтрации по параметрам.
В отличие от метода api-girl/get-profiles-list возвращает данные в естественном порядке сортируя анкеты по id или по столбцу переданному в параметре order

api-girl/get-profiles-list-admin GET

Принимаемые параметры

Параметр Тип Описание Обязательный
category_id int ID категории анкеты Нет
user_id int ID пользователя. Владельца анкеты Нет
id int ID анкеты Нет
status_id int ID статуса анкеты Нет
author_id int ID пользователя. Создателя анкеты Нет
date_add string Дата создания анкеты. Формат: YYYY-MM-DD Нет
order string Название поля для сортировки списка от меньшего к большему Нет
limit int Количество возвращаемых записей. По умолчанию 20 Нет
offset int Отступ от начала списка. По умолчанию null. Нет

Возвращаемые данные


[
    "count": 652, // Общее количество анкет в базе по заданным параметрам
    {
        "id": 1221, // INT ID анкеты
        "user_id": 123, //ID пользователя. Владельца анкеты
        "category_id": 5, //ID категории анкеты
        "name": "Анна", //STRING Имя в анкете
        "age": 23, //INT возраст
        "height": 160, //INT рост
        "breast": 3, //INT бюст
        "hair_color": "Русый", //STRING цвет волос
        "metro": 4, //INT ID станции метро
        "price_hour_app": 500000, //INT Стоимость 1 часа в апартаментах в копейках
        "price_two_hour_app": 1000000, //INT Стоимость 2 часов в апартаментах в копейках
        "price_night_app": 5000000, //INT Стоимость ночи в апартаментах в копейках
        "price_hour_exit": 500000, //INT Стоимость 1 часа выезд в копейках
        "price_two_hour_exit": 1000000, //INT Стоимость 2 часов выезд в копейках
        "price_night_exit": 5000000, //INT Стоимость ночи выезд в копейках
        "verify_photo": 1, //INT проверено ли фото модераторами. 0 - нет 1 - да.
        "description": "Я самая самая...", //STRING о себе от лица владельца анкеты
        "tel": 76554112787, //INT номер телефона
        "whatsapp": 76554112787, //INT номер телефона в whatsapp
        "tg": "@lkjdsgiov | 74568546589", //STRING телеграм. Логин или телефон
        "currency_id": 1, //INT ID валюты использующейся в анкете
        "city_id": 1, //INT ID города в котором отображается анкета
        "status_id": 1, //INT ID статуса анкеты
        "author_id": 1, //INT ID пользователя создателя анкеты
        "date_add": 1, //INT timestamp даты создания анкеты
        "date_update": 1, //INT timestamp даты последнего обновления анкеты
        "stat":{ // Объект статистики анкеты
            "id": 1,
            "profile_id": 165,
            "view": 9,
            "like": 0,
            "dislike": 0
        },
        "activity": { // Объект активности пользователя владельца анкеты
            "id": "3",
            "user_id": "44",
            "status": "1",
            "last_activity": "1707150669"
        },
        "metro":{
            "id": 5, // ID метро
            "city_id": 16, // ID городв в котором находится метро
            "name": "Серпуховская", // Название станции
        },
        "city":{
            "id": 5, // ID города
            "country_id": 16 // ID страны в которой находится город
            "name": "Москва", // Название города
        },
        "shortUser": { // Сокращённый объект пользователя владельца анкеты
            "id": "123",
            "username": "Anchelika",
            "email": "Ghb@cffrf.com"
        },
        "photo": [ // Массив объектов фото привязанных к анкете
            {
            "id": "3252",
            "profile_id": "99",
            "type": "photo",
            "title": "i",
            "pic": "7794e5dfa7e187da8c48f1935aafec28.png",
            "sort": "0"
            },
            ...
        ],
        "video": { // Объект видео визитки анкеты
            "id": "40",
            "profile_id": "99",
            "type": "title",
            "title": "i",
            "name": "5ae7ac6384310d914e43be4bff98a566.mp4",
            "sort": "0"
        },
        "category": { //Объект категории анкеты
            "id": "4",
            "name": "Содержанки",
            "description": null
        },
        "status": { //Объект статуса анкеты
            "id": "5",
            "name": "Архивная"
        },
        "author": { // Объект пользователя создателя анкеты
            "id": "1",
            "username": "admin",
            "email": "admin@admin.admin"
        },
        "isSaved": false // Добавлена ли анкета в избранное запросившего пользователя
    },
    ...
]
                        

Получение списка анкет по параметрам с минимальным набором данных.

Возвращает список анкет с возможностью постраничной разбивки и фильтрации по параметрам и с минимальным набором данных

api-girl/get-profiles-list-short-data GET

Принимаемые параметры

Параметр Тип Описание Обязательный
category_id int ID категории анкеты Нет
user_id int ID пользователя. Владельца анкеты Нет
id int ID анкеты Нет
status_id int ID статуса анкеты Нет
author_id int ID пользователя. Создателя анкеты Нет
date_add string Дата создания анкеты. Формат: YYYY-MM-DD Нет
order string Название поля для сортировки списка от меньшего к большему Нет
limit int Количество возвращаемых записей. По умолчанию 20 Нет
offset int Отступ от начала списка. По умолчанию null. Нет

Возвращаемые данные


[
    {
        "id": 1221, // INT ID анкеты
        "user_id": 123, //ID пользователя. Владельца анкеты
        "category_id": 5, //ID категории анкеты
        "name": "Ирина" // Имя в анкете
    },
    ...
]
                        

Получение анкеты по ID

Возвращает данные анкеты по запрошенному ID

api-girl/get-profile-by-id POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID запрашиваемой анкеты Да

Возвращаемые данные


{
    "id": 1221, // INT ID анкеты
    "user_id": 123, //ID пользователя. Владельца анкеты
    "category_id": 5, //ID категории анкеты
    "name": "Анна", //STRING Имя в анкете
    "age": 23, //INT возраст
    "height": 160, //INT рост
    "breast": 3, //INT бюст
    "hair_color": "Русый", //STRING цвет волос
    "metro": 4, //INT ID станции метро
    "price_hour_app": 500000, //INT Стоимость 1 часа в апартаментах в копейках
    "price_two_hour_app": 1000000, //INT Стоимость 2 часов в апартаментах в копейках
    "price_night_app": 5000000, //INT Стоимость ночи в апартаментах в копейках
    "price_hour_exit": 500000, //INT Стоимость 1 часа выезд в копейках
    "price_two_hour_exit": 1000000, //INT Стоимость 2 часов выезд в копейках
    "price_night_exit": 5000000, //INT Стоимость ночи выезд в копейках
    "verify_photo": 1, //INT проверено ли фото модераторами. 0 - нет 1 - да.
    "description": "Я самая самая...", //STRING о себе от лица владельца анкеты
    "tel": 76554112787, //INT номер телефона
    "whatsapp": 76554112787, //INT номер телефона в whatsapp
    "tg": "@lkjdsgiov | 74568546589", //STRING телеграм. Логин или телефон
    "currency_id": 1, //INT ID валюты использующейся в анкете
    "city_id": 1, //INT ID города в котором отображается анкета
    "status_id": 1, //INT ID статуса анкеты
    "author_id": 1, //INT ID пользователя создателя анкеты
    "date_add": 1, //INT timestamp даты создания анкеты
    "date_update": 1, //INT timestamp даты последнего обновления анкеты
    "stat":{ // Объект статистики анкеты
        "id": 1,
        "profile_id": 165,
        "view": 9,
        "like": 0,
        "dislike": 0
    },
    "activity": { // Объект активности пользователя владельца анкеты
        "id": "3",
        "user_id": "44",
        "status": "1",
        "last_activity": "1707150669"
    },
    "shortUser": { // Сокращённый объект пользователя владельца анкеты
        "id": "123",
        "username": "Anchelika",
        "email": "Ghb@cffrf.com"
    },
    "category": { // Объект категории анкеты
        "id": "4",
        "name": "Содержанки",
        "description": null
    },
    "currency": { // Объект валюты анкеты
        "id": "1",
        "symbol": "₽",
        "name": "Рубль",
        "alpha3": "RUB",
        "number3": "643"
    },
    "city": { // Объект города анкеты
        "id": "2",
        "country_id": "5",
        "name": "Kaliningrad",
        "country": { // Объект страны в которой находится город
            "id": "5",
            "name": "CountryQ",
            "shortName": "testuytyuytyuttu",
            "alpha2": "tt",
            "alpha3": "ttt",
            "iso": "111"
        }
    },
    "checkService": [ // Массив объектов предоставляемых услуг
        { // Объект услуги анкеты заполненный владельцем
            "id": "203",
            "service_id": "8",
            "profile_id": "99",
            "price": "1000",
            "description": "Буду стараться", // STRING (150) Комментарий девочки к услуге
            "service": { // Базовый объект услуги на основании которой создана услуга анкеты
                "id": "8",
                "name": "Секс классический",
                "price": "0",
                "category_id": "1"
            }
        },
        ...
    ],
    "photo": [ // Массив объектов фотографий анкеты
        {
            "id": "3252",
            "profile_id": "99",
            "type": "photo",
            "title": "i",
            "pic": "7794e5dfa7e187da8c48f1935aafec28.png",
            "sort": "0"
        },
        ...
    ],
    "video": { // Объект видео визитки анкеты
        "id": "40",
        "profile_id": "99",
        "type": "title",
        "title": "i",
        "name": "5ae7ac6384310d914e43be4bff98a566.mp4",
        "sort": "0"
    },
    "status": { // Объект статуса анкеты
        "id": "5",
        "name": "Архивная"
    },
    "isSaved": false // Добавлена ли анкета в избранное запросившего пользователя
}
                        

Загрузка фото на сервер для дальнейшей привязки к анкете

Принимает один файл для загрузки на сервер возвращает имя файла для последующей привязки к анкете

После загрузки файл доступен по ссылке:
https://api.look-prod.ru/web/uploads/girls/photo/YOUR_FILE_NAME

Имя файла перед сохранением будет изменено на хеш md5 имени файла + метки серверного времени.

api-girl/upload-photo POST

Обязателен заголовок multipart/form-data

Принимаемые параметры

Параметр Тип Описание Обязательный
image array Стандартный массив файла переданного POST запросом. Да

Возвращаемые данные


{"name": "kjhuvjJhuJgRDfghThgft76ss8df7.png"}
                        

Загрузка видео на сервер для дальнейшей привязки к анкете

Принимает один файл для загрузки на сервер возвращает имя файла для последующей привязки к анкете

После загрузки файл доступен по ссылке:
https://api.look-prod.ru/web/uploads/girls/video/YOUR_FILE_NAME

Имя файла перед сохранением будет изменено на хеш md5 имени файла + метки серверного времени.

api-girl/upload-video POST

Обязателен заголовок multipart/form-data

Принимаемые параметры

Параметр Тип Описание Обязательный
image array Стандартный массив файла переданного POST запросом. Да

Возвращаемые данные


{"name": "kjhuvjJhuJgRDfghThgft76ss8df7.png"}
                        

Добавление новой анкеты в БД

api-girl/set-profile POST

Принимаемые параметры

Параметр Тип Описание Обязательный
user_id int (11) ID пользователя владельца анкеты Да
category_id int (11) ID категории анкеты Да
name string (50) Имя в анкете Да
age int (3) Возраст Да
height int (3) Рост Да
breast int (1) Бюст Да
hair_color string (50) Цвет волос Да
metro int (11) ID станции метро Да
price_hour_app int Цена часа в апартаментах в копейках Да
price_hour_app int Цена часа в апартаментах в копейках Да
price_two_hour_app int Цена 2 часов в апартаментах в копейках Да
price_night_app int Цена ночи в апартаментах в копейках Да
price_hour_exit int Цена часа выезд в копейках Да
price_two_hour_exit int Цена 2 часов выезд в копейках Да
price_night_exit int Цена ночи выезд в копейках Да
verify_photo int (1) Проверено ли фото модераторами. 1 - да, 0 - нет Да
description string (1500) О себе от лица владельца анкеты Да
tel int (20) Номер телефона в формате 74568954654 Да
tg string (50) Телеграм. Логин или номер телефона Да
whatsapp int (20) Телефон в whatsapp в формате 79965541258 Да
currency_id int (11) ID валюты в анкете Да
city_id int (11) ID города в анкете Да
status_id int (11) ID статуса анкеты Да
author_id int (11) ID пользователя создателя анкеты Да
photo array Массив фотографий ранее загруженных на сервер с помощью метода api-girl/upload-photo. Каждый элемент массива должен содержать поле name с именем загруженного файла.
Пример js:
[
    {
        "name":"soiruglsdhfhdsfg.png"
    },
    ...
]
                                
Да
video string|array Массив с одним элементом содержащим поле name с именем файла или строка содержащая имя файла ранее загруженного на сервер с помощью метода api-girl/upload-video.
Пример js:
[
    "name":"soiruglsdhfhdsfg.png"
]
ИЛИ
"soiruglsdhfhdsfg.png"
                                
Да
checkService array Массив предоставляемых услуг. Каждый элемент массива должен содержать поля id (ID услуги из объекта услуг анкет) и price (стоимость услуги в копейках)
Пример js:
[
    {
        "id": 2,
        "price":500000
    },
    ...
]
                                
Да

Возвращаемые данные


{"status": true}
                        

Обновление анкеты по ID

api-girl/update-profile POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемой анкеты. Передаётся GET параметром Да
user_id int (11) ID пользователя владельца анкеты Нет
category_id int (11) ID категории анкеты Нет
name string (50) Имя в анкете Нет
age int (3) Возраст Нет
height int (3) Рост Нет
breast int (1) Бюст Нет
hair_color string (50) Цвет волос Нет
metro int (11) ID станции метро Нет
price_hour_app int Цена часа в апартаментах в копейках Нет
price_hour_app int Цена часа в апартаментах в копейках Нет
price_two_hour_app int Цена 2 часов в апартаментах в копейках Нет
price_night_app int Цена ночи в апартаментах в копейках Нет
price_hour_exit int Цена часа выезд в копейках Нет
price_two_hour_exit int Цена 2 часов выезд в копейках Нет
price_night_exit int Цена ночи выезд в копейках Нет
verify_photo int (1) Проверено ли фото модераторами. 1 - Да, 0 - нет Нет
description string (1500) О себе от лица владельца анкеты Нет
tel int (20) Номер телефона в формате 74568954654 Нет
tg string (50) Телеграм. Логин или номер телефона Нет
whatsapp int (20) Телефон в whatsapp в формате 79965541258 Нет
currency_id int (11) ID валюты в анкете Нет
city_id int (11) ID города в анкете Нет
status_id int (11) ID статуса анкеты Нет
author_id int (11) ID пользователя создателя анкеты Нет
photo array Массив фотографий ранее загруженных на сервер с помощью метода api-girl/upload-photo. Каждый элемент массива должен содержать поле name с именем загруженного файла.
Пример js:
[
    {
        "name":"soiruglsdhfhdsfg.png"
    },
    ...
]
                                
Да
video string|array Массив с одним элементом содержащим поле name с именем файла или строка содержащая имя файла ранее загруженного на сервер с помощью метода api-girl/upload-video.
Пример js:
[
    "name":"soiruglsdhfhdsfg.png"
]
ИЛИ
"soiruglsdhfhdsfg.png"
                                
Нет
checkService array Массив предоставляемых услуг. Каждый элемент массива должен содержать поля id (ID услуги из объекта услуг анкет) и price (стоимость услуги в копейках)
Пример js:
[
    {
        "id": 2,
        "price":500000,
        "description": "Буду стараться", // STRING (150) Комментарий девочки к услуге
    },
    ...
]
                                
Да

Возвращаемые данные


{"status": true}
                        

Обновление статуса анкеты по ID

api-girl/update-status POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемой анкеты. Передаётся GET параметром Да
status_id int(11) ID нового статуса анкеты Да

Возвращаемые данные


{"status": true}
                        

Возвращает топ анкет по количеству лайков. Отсортировано в обратном порядке

api-girl/get-top-by-likes GET

Принимаемые параметры

Параметр Тип Описание Обязательный
limit int Количество возвращаемых записей. По умолчанию 4 Нет
offset int Отступ от начала списка. По умолчанию null. Нет

Возвращаемые данные


{
    "countTop": "5", // Количество анкет в топе
    "limit": 4, // Лимит выборки
    "offset": null, //Отступ выборки
    "data":[ // Массив с данными топа
        {
            "profile_id": 164, // ID анкеты
            "count": 2, // Количество лайков
            "girlProfile": { // Объект анкеты с дополнительными данными
                "id": "164",
                "user_id": "43",
                "category_id": "8",
                "name": "Амина",
                "age": "23",
                "height": "165",
                "breast": "3",
                "hair_color": "Брюнетка",
                "price_hour_app": "2000",
                "price_two_hour_app": "5000",
                "price_night_app": "15000",
                "price_hour_exit": "0",
                "price_two_hour_exit": "10000",
                "price_night_exit": "0",
                "verify_photo": "1",
                "description": "Любвеобильная и очень...",
                "tel": "9175448538",
                "tg": "",
                "date_add": "1706252812",
                "date_update": "1706252812",
                "whatsapp": "9175448538",
                "currency_id": "1",
                "city_id": "1",
                "status_id": "6",
                "author_id": "1",
                "activity": { // Объект активности
                    "id": "4",
                    "user_id": "43",
                    "status": "0",
                    "last_activity": "1707150669"
                },
                "metro": { // Объект метро
                    "id": "121",
                    "city_id": "1",
                    "name": "Академическая"
                },
                "category": { // Объект категории
                    "id": "8",
                    "name": "Инди",
                    "description": ""
                },
                "photo": [ // Массив фото
                    {
                        "id": "3676",
                        "profile_id": "164",
                        "type": "photo",
                        "title": "i",
                        "pic": "5c1e9203b8bf1d71bc0d5d5f0a20f1ce.jpg",
                        "sort": "0"
                    },
                    ...
                ],
                "city": { // Объект города
                    "id": "1",
                    "country_id": "5",
                    "name": "Москва",
                    "country": {
                    "id": "5",
                    "name": "CountryQ",
                    "shortName": "testuytyuytyutt",
                    "alpha2": "tt",
                    "alpha3": "ttt",
                    "iso": "111"
                }
            }
        },
        ...
    ]
}
                        

Работа со статистикой анкеты. Контроллер ApiStat

Объект статистики


{
    "id": 1, //ID записи в БД
    "profile_id": 165, // ID анкеты
    "view": 9, // Кол-во просмотров анкеты пользователями
    "like": 0, // Кол-во лайков
    "dislike": 0, // Количество жалоб/дизлайков
    "display": 15 // Количество показов анкеты
}
                        

Получение статистики анкеты по её ID

Возвращает объект статистики анкеты

api-stat/get-stat-by-profile-id GET

Возвращаемые данные


{
    "id": 1, //ID записи в БД
    "profile_id": 165, // ID анкеты
    "view": 9, // Кол-во просмотров анкеты пользователями
    "like": 0, // Кол-во лайков
    "dislike": 0, // Количество жалоб/дизлайков
    "display": 15 // Количество показов анкеты
}
                        

Обновление счётчиков по ID анкеты

Метод позволяет обновить любой счётчик по ID анкеты.

api-stat/update-count GET

Принимаемые параметры

Параметр Тип Описание Обязательный
id int ID анкеты Да
counter string Название обновляемого счётчика. Может быть любым из свойств объекта кроме id и profile_id Да
count int На сколько увеличить счётчик. По умолчанию 1 Нет

Возвращаемые данные


{"status": true}
                        

Работа с отзывами

Контроллер позволяет работать с отзывами пользователей


Feedback

Объект описывает отзыв пользователя о девочке


{
    "id": 1221, // INT ID отзыва
    "profile_id": 15, // INT ID анкеты
    "user_id": 15, // INT ID пользователя владельца анкеты
    "stars": 3, // INT Количество звёзд, которые поставил пользователь
    "description": "Хорошо", //STRING (1500) Текст отзыва
    "date_add": 123123123123245, //INT (timestamp) дата добавления отзыва
    "status_id": 1, //INT - ID статуса отзыва
    "photo": 1, //INT - соответствует ли фото реальности. 1 - да, 0 - нет
    "once": 0, //INT - девочка принимает одна или нет. 1 - да, 0 - нет
}
                        

Получение списка отзывов по ID анкеты

Возвращает список отзывов для запрошенного ID анкеты. Возвращаются только отзывы прошедшие модерацию

api-feedback/get-feedback-by-profile-id GET

Принимаемые параметры

Параметр Тип Описание Обязательный
profile_id int ID анкеты для которой запрашиваются отзывы Да
limit int Количество возвращаемых записей. По умолчанию 5 Нет

Возвращаемые данные


{
    "status": true,
    "feedback": [
        {
            "id": "7",
            "profile_id": "1",
            "user_id": "1",
            "stars": "4",
            "description": null,
            "date_add": "1706694710",
            "status_id": "1",
            "photo": "1",
            "once": null,
            "user": { //Сокращённый объект пользователя
                "id": "1",
                "username": "admin",
                "email": "admin@admin.admin"
            },
            "status": { //Объект статуса отзыва
                "id": "1",
                "name": "На модерации"
            }
        },
        ...
    ],
    "count": "8", //Общее количество отзывов по этой анкете
    "rating": "3.88", //Текущий рейтинг на основе всех отзывов
    "starsCount": [
        {
            "stars": 5, // 5 звёзд
            "count": 1 // Количество отзывов с 5 звёздами
        },
        {
            "stars": 4,
            "count": 6
        },
        {
            "stars": 3,
            "count": 0
        },
        {
            "stars": 2,
            "count": 1
        },
        {
            "stars": 1,
            "count": 0
        }
    ]
}
                        

Получение списка отзывов отфильтрованного по параметрам

Возвращает список отзывов по запрошенным параметрам.

api-feedback/get-feedback-by-params GET

Принимаемые параметры

Параметр Тип Описание Обязательный
profile_id int (11) ID анкеты Нет
user_id int (11) ID пользователя владельца анкеты Нет
stars int (1) Количество звёзд 1-5 Нет
status_id int (11) ID статуса отзыва Нет
date_add string (50) Дата добавления отзыва. Передаётся в формате YYYY-MM-DD Нет
limit int Количество возвращаемых записей. По умолчанию 20 Нет
offset int|null Отступ от начала списка. По умолчанию null. Нет

Возвращаемые данные


[
    {
        "id": "7",
        "profile_id": "1",
        "user_id": "1",
        "stars": "4",
        "description": null,
        "date_add": "1706694710",
        "status_id": "1",
        "photo": "1",
        "once": null,
        "user": { //Сокращённый объект пользователя
            "id": "1",
            "username": "admin",
            "email": "admin@admin.admin"
        },
        "status": { //Объект статуса отзыва
            "id": "1",
            "name": "На модерации"
        }
    },
    ...
]
                        

Добавление отзыва

Добавляет новый отзыв в БД

api-feedback/set-feedback POST

Принимаемые параметры

Параметр Тип Описание Обязательный
profile_id int(11) ID анкеты Да
user_id int(11) ID пользователя Да
stars int (1) Количество звёзд (1-5) Да
photo int (1) Соответствует ли фото реальности 1 или 0 Нет
once int (1) Девочка принимает одна или нет 1 или 0 Нет
description string (1500) Текст отзыва Нет

Возвращаемые данные


{"status": true}
                        

Изменение отзыва

Изменяет отзыв в БД

api-feedback/update-feedback POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемого отзыва. Передаётся GET параметром Да
profile_id int(11) ID анкеты Нет
user_id int(11) ID пользователя Нет
stars int (1) Количество звёзд (1-5) Нет
photo int (1) Соответствует ли фото реальности 1 или 0 Нет
once int (1) Девочка принимает одна или нет 1 или 0 Нет
description string (1500) Текст отзыва Нет
status_id int (11) ID статуса отзыва Нет

Возвращаемые данные


{"status": true}
                        

Изменение статуса отзыва

Изменяет статус отзыва в БД

api-feedback/update-feedback-status POST

Принимаемые параметры

Параметр Тип Описание Обязательный
id GET int(11) ID изменяемого отзыва. Передаётся GET параметром Да
status_id int (11) ID статуса отзыва Нет

Возвращаемые данные


{"status": true}
                        

Дополнительные данные

Раздел содержит информацию о данных, которые никогда|редко используются в методах апи и требуют пояснения механики работы с такими данными и|или структуры


Активность пользователя

Активность пользователя определяется по запросам к апи с данными доступа этого пользователя. При каждом разрешённом запросе дата последней активности обновляется и обновляется статус активности.
При этом с периодичностью в 5 минут серверный скрипт проверяет все записи в таблице. Если время последней активности превышает 5 минут, то статус активности устанавливается в не активное состояние.
Таким образом в системе принят допуск определения не активности от 5 до 10 минут.
Определение активности - полностью автоматический процесс поэтому методов для работы с активностью не существует. АПИ часто возвращает данные активности вместе с другими объектами. Например, при получении списка анкет по параметрам с полным набором данных

Объект активности пользователя


{
    "id": "3", // ID записи в базе
    "user_id": "44", // ID пользователя
    "status": "1", // Статус. 1 - активен 0 - не активен
    "last_activity": "1707150669" // timestamp даты последней активности пользователя
}
                        

Вспомогательные методы Контроллер Api

Раздел содержит список и описание вспомогательных методов АПИ


Проверка номера телефона на уникальность

Метод проверяет наличие номера в базе по полю tel в таблице пользователей. Перед проверкой удаляет любые символы кроме цифр. После удаления проверяет номер на длину.

api/check-phone GET

Принимаемые параметры

Параметр Тип Описание Обязательный
phone string (50) Номер телефона содержащий 11 цифр и любые другие символы (будут удалены перед проверкой) Да

Возвращаемые данные


Если этого номера нет в базе:
{"status":true}

Если номер в базе найден:
{
    "status": false,
    "error": "Номер 78546589564 уже используется"
}
                        

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

Метод возвращает список пользователей с ролью admin

api/get-admin-list GET

Возвращаемые данные


{
    "item_name": "admin", // Роль пользователя
    "user_id": 1, // ID пользователя
    "created_at": 1231213123, // timestamp даты присвоения роли пользователю
    "user": { // Сокращённый объект пользователя
        "id": 1, //ID пользователя
        "username": "admin" // Логин пользователя
    }
},