---
# System prepended metadata

title: Техническое задание на разработку системы идентификации чатов

---

# Техническое задание на разработку системы идентификации чатов

 Нужно создать внутренний сервис выполненный в виде REST API эндпоинта
 [описание деталей].
 
 Владелец сайта на котором установлен виджет, в случае успешной аутентификации пользователя на ресурсе, выполняет фоновый межсерверный запрос 
 для получения ID чата и выводит на страницу ID чата для того чтобы скрипт чата увидел этот ID и автоматически подключился к этому чату. 

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

 ## Описание модификаций нашей системы для возможности реализации
 
     Изменения 
          создать таблицы DB
          добавить методы API
     
 
 ## Описание взаимодействия с сервисом (методы API)
 
 ### Получение ID чата
 
 
 
    Адрес REST API
     
    Входные параметры:
    
    [API KEY + Email пользователя чата] 
     
    Ответ:
    
    [ID чата] 

> Задача аутентификации пользвателей сайта лежит на самом сайте

`если пользоатель не аутентифицирован - запрос должен быть с "псевдо почтой"` 

`если пользователь не авторизован то положить ему куку email_for_chat_id_service со значением random_cookie_based_on_email_entered_by_user`

`псевдо почта будет тогда random_cookie_based_on_email_entered_by_user@доменное_имя_сайта`

`перед отправкой запроса на ID чата проверим наличие куки email_for_chat_id_service если есть то получаем значение и отправляем запрос`

> Backend notes: 
> 
> если чат с данным пользователем не существует то его необходимо создать 
и вернуть его ID


# Дополнительные функции системы

### Автоматический импорт писем приходящих на почту

    При получении входящих писем на адрес ID_чата@txt.me
    Импортировать его текст и аттачи следующим образом
    
> заметки для импорта

`Описание как импортировать`


