1 Требуется создать несколько методов API, которые отвечают за вывод и обновление информации о пользователе:
1.1 метод API получения информации о текущем пользователе
- Название
GET /user.get
- Выводим всю информацию из метода
User::user_info
.
1.2 Метод API обновления информации по текущему пользователю
- Название
POST /user.update
- Content-Type: application/json
- Можно обновлять только поля
first_name
,last_name
,middle_name
,email
иphone
- Если одного из полей нет в запросе - оно не обновляется
- Если в запросе нет ни одного из полей - выводим ошибку
- Поля
middle_name
иemail
могут быть пустые - Поля
first_name
,last_name
иphone
должны быть непустыми - Поле
phone
должно содержать 11 цифр и начинаться с 7 - Email должен автоматически переводиться в нижний регистр
- Телефон должен очищаться от нецифровых символов (при вводе
+7-900-000-00-00
телефон должен корректно обновляться) - При каждом обновлении профиля в базу должна добавлять запись с уведомлением, что информация обновлена
1.3 Метод API получения списка уведомлений пользователя
- Название
GET /notifications.get
- Возвращает массив уведомлений
- У каждого уведомления должен быть заголовок, описание, дата создания и флаг о статусе прочтения
- При вызове можем отправить опциональный параметр, чтобы получить список только непрочитанных уведомлений
1.4 Метод API чтения списка уведомлений пользователя
- Название
POST /notifications.read
- Content-Type: application/json
- Параметров нет
- При вызове читает все уведомления пользователя
Общие требования:
- Простой и понятный код, который написан в том же формате, что и другие части проекта;
- Блоки кода структурированы с помощью комментариев
2 Необходимо сверстать верхний заголовок по дизайну из figma (блок начинается от логотипа CopyBro до текста с 3 блоками "Стать инвестором просто"):
https://www.figma.com/file/NzjhPvxCJMcOgfRfudE4Em?node-id=18%3A0
Требования:
- Весь html-код пишется в файле
/partials/home.html
, css в файле/css/common.css
- Простая структура блоков и css (в html не должно быть перегруженности стилями)
- Должна поддерживаться полная адаптивность (при любом разрешении должен быть корректный рендеринг)
- Формат кода в html и css должен быть тот же, что и в других частях проекта
- Должны поддерживаться четкие изображения для retina-экранов
- При загрузке страницы добавляем плавную анимацию появления блоков на странице через JavaScript (в js-файле
/js/common.js
, выбор блоков - по своему усмотрению, оптимально 10-20 блоков)
3 Отправка результата
- Требуется дополнить коллекцию postman новыми методами (коллекция в корне проекта)
- Загрузить код в репозиторий в виде 2-х коммитов (стартовое состояние и результат тестового задания)