При помилці валідації повертається <Помилка від Joi або іншої бібліотеки валідації> і статусом 400 Bad Request.
Якщо пароль або імейл невірний, повертається json з ключем {"message": "Email or password is wrong"} і статусом 401 Unauthorized.
В іншому випадку, порівнюється пароль для знайденого користувача; якщо паролі збігаються, створюється пара токенів (refreshToken та accessToken), зберігається в поточного юзера і повертається об'єкт і статус 200 OK:
Якщо користувача не існує, повертається json з ключем {"message": "Not authorized"} і статусом 401 Unauthorized.
При помилці валідації повертається <Помилка від Joi або іншої бібліотеки валідації> і статусом 400 Bad Request.
При зміні email або password видаляється пара токенів (refreshToken та accessToken) у поточного юзера.
Якщо значення полів name, email збігаються з попередніми, повертається json з ключем {"message": "Such data is already in use"} і статусом 400 Bad Request.
В іншому випадку повертається об'єкт і статус 200 OK:
Якщо користувача не існує, повертається json з ключем {"message": "Not authorized"} і статусом 401 Unauthorized.
При помилці валідації повертається <Помилка від Joi або іншої бібліотеки валідації> і статусом 400 Bad Request.
Якщо з body все добре, виконується відправка листа з коментарем юзера на імейл служби підтримки (taskpro.project@gmail.com) та листа зі сповіщенням про отримання запиту про допомогу на імейл користувача.
За результатом успішної роботи повертається json з ключем {"message": "Reply email has been sent"} зі статусом 200 OK.
POST https://askpro-backend.onrender.com/api/auth/refresh - Refresh user token
Отримує body у форматі з обов'язковим полем refreshToken з валідацією:
{
"refreshToken": "examplerefreshToken"
}
При помилці валідації повертається <Помилка від Joi або іншої бібліотеки валідації> і статусом 400 Bad Request.
Якщо з body все добре, перевіряється чи існує юзер з таким refreshToken.
Якщо не існує, повертається json з ключем {"message": "Invalid token"} і статусом 403 Forbidden.
Якщо існує, створюється пара токенів (refreshToken та accessToken), зберігається в поточного юзера і повертається об'єкт і статус 200 OK:
Якщо такого id немає, повертається json з ключем "message": "Board with id not found" і статусом 404 Not Found.
Якщо такий id є, повертається об'єкт дошки (містить об'єкт користувача (owner), масив об'єктів колонок (columns) з масивом об'єктів карток (cards)) в json-форматі зі статусом 200 OK:
Якщо поле background не передане або передане значення "no-background", в об'єкті дошки в полі backgroundURL повертаєтся пустий об'єкт {}.
Якщо в поле background передане інше значення, в об'єкті дошки в полі backgroundURL повертаєтся об'єкт у форматі:
{
"backgroundURL": {
"mobile_1x": "посилання на зображення для мобільної версії 1x",
"mobile_2x": "посилання на зображення для мобільної версії 2x",
"tablet_1x": "посилання на зображення для планшетної версії 1x",
"tablet_2x": "посилання на зображення для планшетної версії 2x",
"desktop_1x": "посилання на зображення для десктопної версії 1x",
"desktop_2x": "посилання на зображення для десктопної версії 2x",
}
}
Якщо поле background передане значення "no-background", в об'єкті дошки в полі backgroundURL повертаєтся пустий об'єкт {}.
Якщо в поле background передане інше значення, в об'єкті дошки в полі backgroundURL повертаєтся об'єкт у форматі:
{
"backgroundURL": {
"mobile_1x": "посилання на зображення для мобільної версії 1x",
"mobile_2x": "посилання на зображення для мобільної версії 2x",
"tablet_1x": "посилання на зображення для планшетної версії 1x",
"tablet_2x": "посилання на зображення для планшетної версії 2x",
"desktop_1x": "посилання на зображення для десктопної версії 1x",
"desktop_2x": "посилання на зображення для десктопної версії 2x",
}
}
Columns
POST https://askpro-backend.onrender.com/api/columns - Add new column
Отримує body у форматі:
{
"title": "exampletitle",
"board": "exampleid"
}
Усі поля обов'язкові з валідацією.
В полі board отримує id дошки, в яку додається колонка. Якщо дошки з таким id немає, повертається json з ключем "message": "Such board with id does not exist" і статусом 404 Not Found.
Якщо в базі є дошка з колонкою з такою назвою, повертається json з ключем {"message": "Such column with title has already been added to this Board"} і статусом 409 Conflict.
Отримує body в json-форматі c оновленням поля title:
{
"title": "exampletitle",
"board": "exampleid"
}
Якщо body немає, повертається json з ключем {"message": "missing fields"} і статусом 400 Bad Request.
Якщо такого id немає, повертається json з ключем "message": "Column with id not found" і статусом 404 Not Found.
Якщо в базі є дошка з колонкою з такою назвою, повертається json з ключем {"message": "Such column with title has already been added to this Board"} і статусом 409 Conflict.
Якщо такий id і з body все добре, є повертається оновлений об'єкт картки зі статусом 200 OK:
В полі column отримує id колонки, в яку додається картка. Якщо колонки з таким id немає, повертається json з ключем "message": "Column with id not found" і статусом 404 Not Found.