guild/docs/api/questionnaire.md
2022-03-21 16:11:56 +03:00

21 KiB
Raw Permalink Blame History

Анкеты

Методы

Метод Описание
questionnaire/questionnaires-list Возвращает список анкет
questionnaire/questionnaire-completed Завершение прохождение анкеты, проверка ответов
questionnaire/get-points-number Число балов в анкете
questionnaire/get-question-number Число вопросов в анкете
question/get-questions Вопросы анкеты
answer/get-answers Список возможных ответов на вопрос
user-response/set-response Сохранить ответ пользователя
user-response/set-responses Сохранить массив ответов пользователя
get Возвращает менеджера

Список анкет

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": 1,
  "uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5",
  "score": 11,
  "status": 2,
  "percent_correct_answers": 0.25,
  "testing_date": "2022-03-17 11:14:22",
  "questionnaire_title": "Кат1 Анкета 1 активна"
}

Возвращаемые параметры объекта анкета:

Параметры Значение
user_id ID пользователя(int)
uuid uuid анкеты пользователя
score Полученные балы(int)
status Статус: 0 - не активен; 1 - активен; 2 - завершён; 3 - на проверке;
percent_correct_answers Процент правильных ответов(float)
testing_date Дата тестирования
questionnaire_title Название анкеты

Передаваемые параметры объекта вопроса:

Параметры Значение
user_id ID пользователя(int)
score Полученные балы(int)
percent_correct_answers Процент правильных ответов(float)

Если пользователь не найден или у пользователя нет активных анкет будет отправлено следующее сообщение:

{
  "name": "Not Found",
  "message": "Active questionnaire not found",
  "code": 0,
  "status": 404,
  "type": "yii\\web\\NotFoundHttpException"
}

Проверить ответы в анкете

https://guild.craft-group.xyz/api/user-questionnaire/questionnaire-completed

Для выполнения проверки анкеты необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/user-questionnaire/questionnaire-completed

Требуемые параметры запроса:

Параметры Значение
user_questionnaire_uuid UUID анкеты назначеной пользователю

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

https://guild.craft-group.xyz/api/user-questionnaire/questionnaire-completed?user_questionnaire_uuid=d222f858-60fd-47fb-8731-dc9d5fc384c5

Возвращает массив объектов Вопросов.
Каждый объект Вопрос имеет такой вид:

{
  "id": 1,
  "questionnaire_id": 1,
  "user_id": 1,
  "uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5",
  "created_at": "2021-10-20 13:06:12",
  "updated_at": {
    "expression": "NOW()",
    "params": []
  },
  "score": 4,
  "status": 1,
  "percent_correct_answers": 0.5,
  "testing_date": null
}

Число балов в анкете

https://guild.craft-group.xyz/api/user-questionnaire/get-points-number?user_questionnaire_uuid=d222f858-60fd-47fb-8731-dc9d5fc384c5

Для максимального числа балов в анкеты необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/user-questionnaire/get-points-number

Требуемые параметры запроса:

Параметры Значение
user_questionnaire_uuid UUID анкеты назначеной пользователю

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

https://guild.craft-group.xyz/api/user-questionnaire/get-points-number?user_questionnaire_uuid=d222f858-60fd-47fb-8731-dc9d5fc384c5

Возвращает максимально возможное число балов за анкету b>.
Объект Ответа имеет такой вид:

{
  "sum_point": "61"
}

Число вопросов в анкете

https://guild.craft-group.xyz/api/user-questionnaire/get-question-number?user_questionnaire_uuid=d222f858-60fd-47fb-8731-dc9d5fc384c5

Для числа вопросов в анкете необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/user-questionnaire/get-question-number

Требуемые параметры запроса:

Параметры Значение
user_questionnaire_uuid UUID анкеты назначеной пользователю

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

https://guild.craft-group.xyz/api/user-questionnaire/get-question-number?user_questionnaire_uuid=d222f858-60fd-47fb-8731-dc9d5fc384c5

Возвращает число вопросов в анкете b>.
Объект Ответа имеет такой вид:

{
  "question_number": "7"
}

Вопросы анкеты

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": "4",
  "question_type_id": "2",
  "question_body": "Один ответ1",
  "question_priority": null,
  "next_question": null,
  "time_limit": "00:22:00"
}

Передаваемые параметры объекта вопроса:

Параметры Значение
id ID вопроса(int)
question_type_id ID типа вопроса(int)
question_body Вопрос(string)
question_priority Приоритет вопроса(int)(не используется)
next_question Следующий вопрос(int)(не используется)
time_limit Ограничение времени на ответ(time)

Если вопрос не найден или не предпологает передачу ответов будет отправлено следующее сообщение:

{
  "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": "12",
    "question_id": "7",
    "answer_body": "Неск вар1 отв1 истина"
  },
]

Передаваемые параметры объекта вопроса:

Параметры Значение
id ID вопроса(int)
question_id ID вопроса(int)
answer_body Ответ(string)

Если ответы не найдены или вопрос не предпологает их наличие(открытый вопрос) будет отправлено следующее сообщение:

{
  "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

Тело запроса содержит:

Параметры Значение
user_id ID пользователя
question_id ID вопроса(int)
response_body Ответ пользователя(string 255)
user_questionnaire_uuid UUID анкеты назначенной пользователю(string 36)

Пример тела запроса:

{
  "user_id": "1",
  "question_id": "7",
  "response_body": "oooooooooooo111111111",
  "user_questionnaire_uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5"
}

https://guild.craft-group.xyz/api/user-response/set-response

Возвращает объект Ответа.
Объект Ответа имеет такой вид:

{
  "user_id": "1",
  "question_id": "7",
  "response_body": "oooooooooooo111111111",
  "user_questionnaire_uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5",
  "created_at": {
    "expression": "NOW()",
    "params": []
  },
  "updated_at": {
    "expression": "NOW()",
    "params": []
  },
  "id": 191,
  "answer_flag": 0
}

Ответ содержит:

Параметры Значение
user_id ID пользователя
question_id ID вопроса(int)
response_body Ответ пользователя(string 255)
user_questionnaire_uuid UUID анкеты назначенной пользователю(string 36)
answer_flag Флаг ответа(1 - верно, 0 - ложно). Если отправлен ответ на открытый вопрос, флаг ответа не будет возвращаться до момента проверки в админ панели.

В случаии ошибки в запросе будет отправлено сообщение следующего вида:

{
  "name": "Bad Request",
  "message": "{\"question_id\":[\"\В\о\п\р\о\с is invalid.\"]}",
  "code": 0,
  "status": 400,
  "type": "yii\\web\\BadRequestHttpException"
}

Массив ответов пользователя

https://guild.craft-group.xyz/api/user-response/set-responses

Для добавления массива ответов на вопросы от пользователя необходимо сделать POST запрос на URL https://guild.craft-group.xyz/api/user-response/set-responses

Тело запроса содержит JSON c массивом ответов со следующими параметрами:

Параметры Значение
user_id ID пользователя
question_id ID вопроса(int)
response_body Ответ пользователя(string 255)
user_questionnaire_uuid UUID анкеты назначенной пользователю(string 36)

Пример тела запроса:

{
  "userResponses": [
    {
      "user_id": "1",
      "question_id": "7",
      "response_body": "oooooooooooo111111111",
      "user_questionnaire_uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5"
    },
    {
      "user_id": "1",
      "question_id": "4",
      "response_body": "oooooooooooo2222222",
      "user_questionnaire_uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5"
    }
  ]
}

Возвращает массив объектов ОтветПользователя.
Пример:

[
  {
    "user_id": "1",
    "question_id": "7",
    "response_body": "oooooooooooo111111111",
    "user_questionnaire_uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5",
    "created_at": {
      "expression": "NOW()",
      "params": []
    },
    "updated_at": {
      "expression": "NOW()",
      "params": []
    },
    "id": 192,
    "answer_flag": 0
  },
  {
    "user_id": "1",
    "question_id": "7",
    "response_body": "oooooooooooo111111111",
    "user_questionnaire_uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5",
    "created_at": {
      "expression": "NOW()",
      "params": []
    },
    "updated_at": {
      "expression": "NOW()",
      "params": []
    },
    "id": 193,
    "answer_flag": 0
  }
]

Ответ содержит:

Параметры Значение
user_id ID пользователя
question_id ID вопроса(int)
response_body Ответ пользователя(string 255)
user_questionnaire_uuid UUID анкеты назначенной пользователю(string 36)
answer_flag Флаг ответа(1 - верно, 0 - ложно)

В случаии ошибки в запросе будет отправлено сообщение следующего вида:

{
  "name": "Bad Request",
  "message": "{\"question_id\":[\"\В\о\п\р\о\с is invalid.\"]}",
  "code": 0,
  "status": 400,
  "type": "yii\\web\\BadRequestHttpException"
}