Skip to content

Repository files navigation

# Пользовательская история

Сервис задач согласования и отправки писем с именем "task" - реализует REST API для создания задачи на согласование и рассылки уникальных ссылок-решений участникам.
Список участников указывается явно (список email) для каждой задачи.
REST API должно реализовывать методы `CREATE` и `DELETE` для задач согласования. Операции позволены только автору задачи.

Каждому участнику после создания задачи высылается письмо с двумя уникальными ссылками - "согласовано" и "не согласовано".

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

API должно иметь методы для обработки "нажатий" на высланные ссылки и регистрации соответствующей реакции согласующего.

Если была нажата хотя бы одна ссылка "не согласовано", задача считается в целом не согласованной, и всем участникам рассылается уведомление об окончании согласования с негативным результатом, и письма со ссылками следующим согласующим по этой задаче уже не отправляются.

# Требования к реализации

- Реализовать бизнес-логику сервиса в гексагональной архитектуре
- Обеспечить gracefull shutdown сервиса, логгирование и трейсинг
- В качестве базы данных может использоваться MongoDB или PostreSQL
- Сервис должен выполнять отправку письма не чаще, чем \[1 письмо / мин\] (допустимо в stdout)

About

task service with mail sender and rate limiter

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages