Сервис управления адресами

Общая информация

Сервис предназначен для управления адресами пользователей. Поддерживаются операции создания, получения, обновления и удаления адресов.


Эндпоинты

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: Помечает адрес как удалённый.