Сервис управления адресами
Общая информация
Сервис предназначен для управления адресами пользователей. Поддерживаются операции создания, получения, обновления и удаления адресов.
Эндпоинты
1. Получение адресов пользователя
Описание: Возвращает список адресов для указанного пользователя.
- URL:
/api/v1/by-user-id/:id - Метод:
GET - Middleware:
authMiddleware(['user']) - Параметры запроса:
id(string, uuid, required): ID пользователя.
- Ответы:
200 OK: Массив объектов адресов.500 Internal Server Error: Что-то пошло не так.
2. Создание нового адреса
Описание: Создает новый адрес для пользователя.
- URL:
/api/v1 - Метод:
POST - Middleware:
authMiddleware(['user']) - Тело запроса:
{ "city": "string", "street": "string", "home": "string", "housing": "string (nullable)", "apartment": "string (nullable)", "entrance": "string (nullable)", "floor": "string (nullable)", "doorphone": "string (nullable)", "isPrivateHouse": false, "comment": "string (nullable)", "regionId": "string (nullable)", "externalCartographyId": "string (nullable)", "index": "string (nullable)" } - Ответы:
201 Created: Адрес успешно создан.500 Internal Server Error: Что-то пошло не так.
3. Обновление адреса
Описание: Обновляет адрес по его ID.
- URL:
/api/v1/:id - Метод:
PUT - Middleware:
authMiddleware(['user']) - Параметры запроса:
id(string, uuid, required): ID адреса.
- Тело запроса:
{ "city": "string", "street": "string", "home": "string", "housing": "string (nullable)", "apartment": "string (nullable)", "entrance": "string (nullable)", "floor": "string (nullable)", "doorphone": "string (nullable)", "isPrivateHouse": false, "comment": "string (nullable)", "regionId": "string (nullable)", "externalCartographyId": "string (nullable)", "index": "string (nullable)" } - Ответы:
200 OK: Адрес успешно обновлен.500 Internal Server Error: Что-то пошло не так.
4. Удаление адреса
Описание: Удаляет адрес по его ID.
- URL:
/api/v1/:id - Метод:
DELETE - Middleware:
authMiddleware(['user']) - Параметры запроса:
id(integer, required): ID адреса.
- Ответы:
200 OK: Адрес успешно удален.500 Internal Server Error: Что-то пошло не так.
Модели
AddressModel
Описание: Модель таблицы addresses в базе данных.
- Поля:
id(integer, primary key, auto-increment): ID адреса.userId(string, uuid, nullable): ID пользователя.isDeleted(boolean, default: false): Флаг удаления.city(string): Наименование города.street(string): Наименование улицы.home(string): Номер дома.housing(string, nullable): Корпус.apartment(string, nullable): Квартира.entrance(string, nullable): Подъезд.floor(string, nullable): Этаж.doorphone(string, nullable): Домофон.isPrivateHouse(boolean, default: false): Признак частного дома.comment(string, nullable): Дополнительная информация.regionId(string, nullable): ID региона.externalCartographyId(string, nullable): ID в картографической системе.index(string, nullable): Почтовый индекс.
Логика работы
Сервисные методы
- getAddresses: Возвращает все адреса, не отмеченные как удалённые.
- getAddressesByUserId: Возвращает адреса пользователя по ID.
- createAddress: Валидирует и создаёт новый адрес.
- updateAddress: Обновляет существующий адрес по ID.
- deleteAddress: Помечает адрес как удалённый.