GoIT Node.js Course Template Homework

Виконайте форк цього репозиторію для виконання домашніх завдань (2-6) Форк створить репозиторій на вашому http://github.com

Додайте ментора до колаборації

Для кожної домашньої роботи створюйте свою гілку.

  • hw02
  • hw03
  • hw04
  • hw05
  • hw06

Кожна нова гілка для др повинна робитися з master

Після того, як ви закінчили виконувати домашнє завдання у своїй гілці, необхідно зробити пулл-реквест (PR). Потім додати ментора для рев'ю коду. Тільки після того, як ментор заапрувить PR, ви можете виконати мердж гілки з домашнім завданням у майстер.

Уважно читайте коментарі ментора. Виправте зауваження та зробіть коміт у гілці з домашнім завданням. Зміни підтягнуться у PR автоматично після того, як ви відправите коміт з виправленнями на github Після виправлення знову додайте ментора на рев'ю коду.

  • При здачі домашньої роботи є посилання на PR
  • JS-код чистий та зрозумілий, для форматування використовується Prettier

Команди:

  • npm start — старт сервера в режимі production
  • npm run start:dev — старт сервера в режимі розробки (development)
  • npm run lint — запустити виконання перевірки коду з eslint, необхідно виконувати перед кожним PR та виправляти всі помилки лінтера
  • npm lint:fix — та ж перевірка лінтера, але з автоматичними виправленнями простих помилок

Додаткове завдання: Маршрут / для оновлення підписки користувача методом PATCH. Під час оновлення підписки ви перевіряєте, чи передане значення підписки (subscription) є одним із допустимих значень: "starter", "pro" або "business".

Ось як відбувається процес оновлення підписки:

Запит методом PATCH надходить на маршрут /.

Функція updateSubscription витягує значення subscription з тіла запиту (req.body.subscription).

Перевіряється, чи передане значення subscription входить у список допустимих значень, який ви визначили: "starter", "pro" або "business". Це робиться за допомогою методу Array.includes.

Якщо значення subscription є допустимим, то ви виконуєте оновлення підписки користувача у базі даних за допомогою User.findByIdAndUpdate. Ви передаєте req.user.id для ідентифікації користувача, якому треба оновити підписку, та нове значення subscription. З опцією { new: true } ви просите повернути оновленого користувача.

Якщо оновлення пройшло успішно, ви відправляєте відповідь зі статусом 200 та об'єктом, який містить оновлену інформацію про користувача, включаючи новий email та subscription.

Якщо виникла помилка під час перевірки значення subscription або під час оновлення в базі даних, ви відправляєте відповідь зі статусом 500 та повідомленням про "Internal Server Error".

Цей код призначений для оновлення підписки користувача, перевірки коректності значення підписки та відповіді на запит. Він дозволяє користувачам оновлювати свої підписки на одне із допустимих значень.