Skip to content

Latest commit

 

History

History
35 lines (29 loc) · 2.48 KB

backend-user-db.md

File metadata and controls

35 lines (29 loc) · 2.48 KB

Необходимо поднять сервис, позволяющий добавлять пользователя в БД и выдающий результат обработки запроса.

  • Сервис должен быть написан на любом удобном фреймворке и (по возможности) развернут в докере.

  • Для получения запросов сервис должен слушать очередь RabbitMQ. Для RabbitMQ параметры host, port, vhost, exchange, queue, user, password должны задаваться в конфиге или через командную строку.

  • Сервис должен общаться с уже подготовленной базой данных postgresql. Host, port, db_name, user, password для БД должны задаваться в конфиге или через командную строку.

  • Структура базы данных:

    • id character(10) NOT NULL
    • name character(100) NOT NULL
    • email character(100) NOT NULL
    • location character(100) NOT NULL
  • Запрос на добавление пользователя будет приходить в виде словаря с ключами:

    • ‘action’: ‘add_user’
    • ‘name’: ‘some_name’
    • ‘email’: ‘some_email’
    • ‘location’: ‘some_city’
    • ‘reply_to’: {‘queue’: ‘some_queue’, ‘exchange’: ‘some_exchange’}

После получения, проверки корректности и выполнения входящего запроса, система должна по роутинг из reply_to поля запроса выслать информацию

  • При успешном выполнении: Id: id человека в таблице; error_code: 0, error_msg: ‘’
  • При ошбике: id: null, error_code: 1, error_msg: “error description”

Гарантируется, что во входящем запросе всегда есть поле reply_to с правильной структурой. Присутствие и правильность других полей не гарантируется.

В качестве результата:

  • Код проекта, например на github
  • (желательно) Код для сборки докера
  • (желательно) Собранный докер
  • Readme с общим описанием системы и работы с ней