# Документация API ## Навыки ### Популярные навыки `https://guild.craft-group.xyz/api/skills/skills-on-main-page`
Чтобы получить популярные навыки нужно сделать GET запрос на URL https://guild.craft-group.xyz/api/skills/skills-on-main-page
## Профиль ### Список `https://guild.craft-group.xyz/api/profile`Для получения списка профилей необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/profile
Возможные параметры:
| Параметры | Значение | 
|---|---|
| limit | Количество профилей, которое вернет сервер при запросе. | 
| offset | Количество записей на которое нужно отступить в списке профилей. | 
| skills | Идентификаторы навыков по которым нужно отфильтровать профили. | 
Пример запроса:
`https://guild.craft-group.xyz/api/profile?limit=5&offset=5&skills=1,2`
    Возвращает массив объектов Профилей. 
    Каждый объект Профиля имеет такой вид:
Для того, чтобы получить данные одной записи необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/profile/{id} , где id это идентификатор профиля.
Пример запроса:
`https://guild.craft-group.xyz/api/profile/6`
    Возвращает объект Профиля. 
    Как выглядит можно посмотреть выше.
Для того, отправить приглашение профилю на собеседование, необходимо сделать POST запрос на URL https://guild.craft-group.xyz/api/profile/add-to-interview
Возможные параметры:
| Параметры | Значение | 
|---|---|
| email* | Почта пользователя, который хочет пригласить на собеседование. | 
| profile_id* | Идентификатор профиля. | 
| phone | Телефон. | 
| comment | Дополнительные пожелания по собеседованию. | 
Для получения списка отчетов необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/reports
Возможные параметры:
| Параметры | Значение | 
|---|---|
| fromDate* | Дата (yyyy-mm-dd) начала поиска отчетов. | 
| toDate | Дата (yyyy-mm-dd) окончания поиска отчетов. | 
| limit | Количество отчетов, которое вернет сервер при запросе (по умолчанию 10). | 
| offset | Количество записей на которое нужно отступить в списке отчетов. | 
| user_id | Идентификатор карточки пользователя отчета. | 
Пример запроса:
`https://guild.craft-group.xyz/api/reports/index?fromDate=2021-08-01&toDate=2021-08-31&user_id=2limit=3&offset=2` ### Создать отчет `https://guild.craft-group.xyz/api/reports/create`Для того, отправить приглашение профилю на собеседование, необходимо сделать POST запрос на URL https://guild.craft-group.xyz/api/reports/create
Возможные параметры:
| Параметры | Значение | 
|---|---|
| created_at* | Дата (yyyy-mm-dd) создания. | 
| user_card_id* | Идентификатор карточки пользователя. | 
| today | Сделанное сегодня. | 
| difficulties | Сложности. | 
| tomorrow | Планы на завтра. | 
| status | Номер статуса. | 
Для удаления отчета необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/reports/delete
Возможные параметры:
| Параметры | Значение | 
|---|---|
| id* | Идентификатор отчета. | 
Пример запроса:
`https://guild.craft-group.xyz/api/reports/delete?id=17` ### Обновить отчет `https://guild.craft-group.xyz/api/reports/update`Для удаления отчета необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/reports/update
Возможные параметры:
| Параметры | Значение | 
|---|---|
| id* | Идентификатор отчета. | 
| created_at | Дата (yyyy-mm-dd) создания. | 
| today | Сделанное сегодня. | 
| difficulties | Сложности. | 
| tomorrow | Планы на завтра. | 
| status | Номер статуса. | 
Пример запроса:
`https://guild.craft-group.xyz/api/reports/update?id=18&created_at=2021-09-17&today=0&difficulties=diff&tomorrow=new task&status=1` ## Анкеты ###Список анкет `https://guild.craft-group.xyz/api/user-questionnaire/questionnaires-list`Для получения списка анкет необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/user-questionnaire/questionnaires-list
Требуемые параметры запроса:
| Параметры | Значение | 
|---|---|
| user_id | ID пользователя(int) | 
Пример запроса:
`https://guild.craft-group.xyz/api/user-questionnaire/questionnaires-list?user_id=1`
    Возвращает массив объектов записи Назначенная анкета. 
    Каждый объектимеет такой вид:
Передаваемые параметры объекта вопроса:
| Параметры | Значение | 
|---|---|
| user_id | ID пользователя(int) | 
| score | Полученные балы(int) | 
| percent_correct_answers | Процент правильных ответов(float) | 
Если пользователь не найден или у пользователя нет активных анкет будет отправлено следующее сообщение:
```json5 { "name": "Not Found", "message": "Active questionnaire not found", "code": 0, "status": 404, "type": "yii\\web\\NotFoundHttpException" } ``` ### Вопросы анкеты `https://guild.craft-group.xyz/api/question/get-questions`Для получения вопросов анкеты необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/question/get-questions
Требуемые параметры запроса:
| Параметры | Значение | 
|---|---|
| uuid | UUID анкеты назначеной пользователю | 
Пример запроса:
`https://guild.craft-group.xyz/api/question/get-questions?uuid=d222f858-60fd-47fb-8731-dc9d5fc384c5`
    Возвращает массив объектов Вопросов. 
    Каждый объект Вопрос имеет такой вид:
Передаваемые параметры объекта вопроса:
| Параметры | Значение | 
|---|---|
| id | ID вопроса(int) | 
| question_type_id | ID типа вопроса(int) | 
| question_body | Вопрос(string) | 
| question_priority | Приоритет вопроса(int)(не используется) | 
| next_question | Следующий вопрос(int)(не используется) | 
| time_limit | Ограничение времени на ответ(time) | 
Если вопрос не найден или не предпологает передачу ответов будет отправлено следующее сообщение:
```json5 { "name": "Not Found", "message": "Questions not found", "code": 0, "status": 404, "type": "yii\\web\\NotFoundHttpException" } ``` ### Ответы на вопрос `https://guild.craft-group.xyz/api/answer/get-answers`Для получения вариантов ответов на вопрос анкеты нужно сделать GET запрос на URL https://guild.craft-group.xyz/api/answer/get-answers
Требуемые параметры:
| Параметры | Значение | 
|---|---|
| question_id | ID вопроса | 
Пример запроса:
`https://guild.craft-group.xyz/api/answer/get-answers?question_id=7`
    Возвращает массив объектов Ответов. 
    Каждый объект Ответа имеет такой вид:
Передаваемые параметры объекта вопроса:
| Параметры | Значение | 
|---|---|
| id | ID вопроса(int) | 
| question_id | ID вопроса(int) | 
| answer_body | Ответ(string) | 
Если ответы не найдены или вопрос не предпологает их наличие(открытый вопрос) будет отправлено следующее сообщение:
```json5 { "name": "Not Found", "message": "Answer not found or question inactive", "code": 0, "status": 404, "type": "yii\\web\\NotFoundHttpException" } ``` ### Ответ пользователя `https://guild.craft-group.xyz/api/user-response/set-response`Для добавления ответа на вопрос от пользователся необходимо сделать POST запрос на URL https://guild.craft-group.xyz/api/user-response/set-response
Тело запроса содержит:
| Параметры | Значение | 
|---|---|
| question_id | ID вопроса(int) | 
| response_body | Ответ пользователя(string 255) | 
| uuid | UUID анкеты назначенной пользователю(string 36) | 
Пример запроса:
`http://guild.loc/api/user-response/set-responses?user_id=1&user_questionnaire_id=1&question_id=7&response_body=user response string`
    Возвращает объект Ответа. 
    Объект Ответа имеет такой вид:
В случаии ошибки в запросе будет отправлено сообщение следующего вида:
```json5 { "name": "Bad Request", "message": "{\"question_id\":[\"\В\о\п\р\о\с is invalid.\"]}", "code": 0, "status": 400, "type": "yii\\web\\BadRequestHttpException" } ```