Skip to content

Тестовое задание для компании ViaMobi

Notifications You must be signed in to change notification settings

EugeneVdovenko/viamobi-hr-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Реализуйте небольшой API на фреймворке lumen.

В API должно быть два метода, которые позволяют подтвердить владение email-ящиком:

  • sendCode(email) - генерация и отправка секретного кода на указанный email;
  • checkCode(email, code) - сверка указанного кода с тем, что был ранее отправлен на указанный email.

Общие требования к секретному коду:

  1. Код - это строка из 4-ех символов, каждый из которых является цифрой;
  2. Время жизни кода: 5 минут;
  3. Код не может отправляться на один и тот-же email более 5 раз в течение 1 часа;
  4. Код не может отправляться на один и тот-же email более 1 раза в 5 минут;
  5. После успешной генерации нового кода (вызов sendCode), предыдущий, если он был, инвалидируется;
  6. После трех неуспешных попыток проверить код (вызов checkCode) код инвалидируется;
  7. После успешной проверки кода он инвалидируется;
  8. После успешной проверки кода все счетчики ограничений по отправке кода для данного email обнуляются.

Входящие аргументы вызовов должны передаваться в GET-аргументах:

/sendCode?email=<email>
/checkCode?email=<email>&code=<code>

Ответы вызовов должны быть в формате json: Успех:

{"status":"success"}

Ошибка:

{"status":"error","message":"<текстовое описание ошибки>"}

(опционально) Напишите спецификацию на разработанный API.

Как результат выполнения задания пришлите:

  • ссылку на git-репозиторий проекта, или архив с ним;
  • (опционально) ссылку на спецификацию API, или файл с ней.

About

Тестовое задание для компании ViaMobi

Topics

Resources

Stars

Watchers

Forks