API Пользователи - mesto-co/core GitHub Wiki

/v1/user

Параметр Значение
Method PUT/PATH
Authorization +
Query parameters -
  • Вопрос на подумать, делать PATCH - т.е. изменять только переданные поля, либо делать PUT и заменять объект целиком?
  • При получении запроса осуществляет проверка наличия accessToken в Header: Authorization, если не найден вернуть ошибку 401,
  • Если токен найден проверяется срок действия токена, если просрочен вернуть ошибку 419 - Authentication Timeout,
  • Если срок действия валиден найти связанного с токеном пользователя
  • Обновить поля в БД в соответсвии с запросом.
  • Вернуть ответ модель пользователя.

Пример запроса

Перечень полей примерный, необходимо сверяться со схемой БД, а так же разумным минимумом информации.

{
	"firstName": "",
	"surame": "",
	"middleName": "",
	"username": "",
	"imagePath":"",
	"location":"",
	"about": "",
	"role":""
}

Пример ответа

Перечень полей примерный, необходимо сверяться со схемой БД, а так же разумным максимумом информации.

{
	"firstName": "",
	"surame": "",
	"middleName": "",
	"username": "",
	"imagePath":"",
	"location":"",
	"about": "",
	"role":""
}

/v1/user

Параметр Значение
Method GET
Authorization +
Query parameters -
  • Получить авторизацию пользователя
  • Проверить, что токен не просрочен, если просрочен вернуть ошибку 419 - Authentication Timeout
  • Получить из БД по токену запись о пользователе,
  • Получить из БД Список проектов пользователя, - Пока что не получаем.
  • Получить из БД Список контактов пользователя,
  • Отправить Ответ

Пример ответа

{
    "role": "Founder",
    "name": "Дмитрий Бондарев",
    "contacts": [
        {
            "id": 64,
            "title": "Telegram",
            "link": "http://t.me/dmitrybondarev"
        },
        {
            "id": 61,
            "title": "Openland",
            "link": "https://openland.com/bondarev"
        },
        {
            "id": 63,
            "title": "LinkedIn",
            "link": "https://www.linkedin.com/in/bondarev/"
        },
        {
            "id": 62,
            "title": "Facebook",
            "link": "https://www.facebook.com/dmitry.bondarev.75"
        }
    ],
    "about": "Serial entrepreneur for 28 of my 53 years. 8 startups, 2 exits. \nПомогаю техническим командам сделать проект бизнесом.",
    "imagePath": "https://i.imgur.com/CQKb2yw.jpg",
    "email": "[email protected]",
    "location": "St.-Petersburg",
    "id": "some uuid string"
}

/v1/users/:userId

Параметр Значение
Method GET
Authorization +
Query parameters -
Path parameters userId
  • Получить авторизацию пользователя
  • Проверить, что токен не просрочен, если просрочен вернуть ошибку 419 - Authentication Timeout
  • Получить из БД по userId запись о пользователе,
  • Получить из БД Список проектов пользователя, - Пока что не получаем.
  • Получить из БД Список контактов пользователя,
  • получить признак пользователь в избранном,
  • Отправить Ответ

Пример ответа

{
    "role": "Founder",
    "name": "Дмитрий Бондарев",
    "contacts": [
        {
            "id": 64,
            "title": "Telegram",
            "link": "http://t.me/dmitrybondarev"
        },
        {
            "id": 61,
            "title": "Openland",
            "link": "https://openland.com/bondarev"
        },
        {
            "id": 63,
            "title": "LinkedIn",
            "link": "https://www.linkedin.com/in/bondarev/"
        },
        {
            "id": 62,
            "title": "Facebook",
            "link": "https://www.facebook.com/dmitry.bondarev.75"
        }
    ],
    "about": "Serial entrepreneur for 28 of my 53 years. 8 startups, 2 exits. \nПомогаю техническим командам сделать проект бизнесом.",
    "imagePath": "https://i.imgur.com/CQKb2yw.jpg",
    "email": "[email protected]",
    "location": "St.-Petersburg",
    "id": "some uuid string",
	"isFavorite": true
}

/v1/users/

Параметр Значение
Method GET
Authorization +
Query parameters -
  • Получить авторизацию пользователя
  • Проверить, что токен не просрочен, если просрочен вернуть ошибку 419 - Authentication Timeout
  • Получить из БД Список пользователей + получить признак пользователь в избранном или нет,
  • Отправить Ответ

Пример ответа

[{
    "role": "Founder",
    "name": "Дмитрий Бондарев",
    "about": "Serial entrepreneur for 28 of my 53 years. 8 startups, 2 exits. \nПомогаю техническим командам сделать проект бизнесом.",
    "imagePath": "https://i.imgur.com/CQKb2yw.jpg",
    "email": "[email protected]",
    "location": "St.-Petersburg",
    "id": "some uuid string",
    "isFavorite": true
}]