guild/docs/api/main.md

22 KiB
Executable File
Raw Blame History

Документация 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

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

{
  "id": "1",
  "fio": "f23f",
  "passport": "f23", 
  "photo": "''", 
  "email": "f", 
  "gender": "1", 
  "dob": "2021-09-17", 
  "status": "2",
  "created_at": "2021-09-08 16:30:34",
  "updated_at": "2021-09-09 08:41:02",
  "resume": "", 
  "salary": "", 
  "position_id": "1",
  "deleted_at": null, 
  "id_user": "1", 
  "city": "", 
  "link_vk": "",
  "link_telegram": "",
  "vc_text": "",
  "level": "2", //
  "vc_text_short": "",
  "years_of_exp": "0",
  "specification": "",
  "skillValues": [ //Массив навыков привязанных к этому профилю
    {
      "id": "1",
      "card_id": "1", //card_id из таблицы card_skill
      "skill_id": "1",//skill_id из таблицы card_skill
      "skill": {
        "id": "1", //id из таблицы skill
        "name": "SQL",
        "category_id": "1"
      }
    },
    //...
  ],
  "achievements": [ //Массив достижений привязанных к этому профилю
    {
      "id": "7",
      "user_card_id": "1",//user_card_id из таблицы achievement_user_card
      "achievement_id": "1",//achievement_id из таблицы achievement_user_card
      "achievement": {
        "id": "1", //id из таблицы achievement
        "slug": "newguy",
        "title": "Новичок",
        "img": "",
        "description": "Ты начал у нас работу",
        "status": "1" // 1 - Активно, 2 - Неактивно
      }
    },
    //...
  ]
}

Одна запись

https://guild.craft-group.xyz/api/profile/{id}

Для того, чтобы получить данные одной записи необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/profile/{id} , где id это идентификатор профиля.

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

https://guild.craft-group.xyz/api/profile/6

Возвращает объект Профиля.
Как выглядит можно посмотреть выше.

Пригласить на собеседование

https://guild.craft-group.xyz/api/profile/add-to-interview

Для того, отправить приглашение профилю на собеседование, необходимо сделать POST запрос на URL https://guild.craft-group.xyz/api/profile/add-to-interview

Возможные параметры:

Параметры Значение
email* Почта пользователя, который хочет пригласить на собеседование.
profile_id* Идентификатор профиля.
phone Телефон.
comment Дополнительные пожелания по собеседованию.

Отчет

Список

https://guild.craft-group.xyz/api/reports

Для получения списка отчетов необходимо отправить 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 Номер статуса.

Удалить отчет

https://guild.craft-group.xyz/api/reports/delete

Для удаления отчета необходимо отправить 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": 1,
  "uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5",
  "score": 20,
  "status": 1,
  "percent_correct_answers": 0.8
}

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

Параметры Значение
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/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

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

Параметры Значение
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

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

{
  "user_id": "1",
  "question_id": "7",
  "response_body": "user response string",
  "user_questionnaire_uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5",
  "created_at": {
    "expression": "NOW()",
    "params": []
  },
  "updated_at": {
    "expression": "NOW()",
    "params": []
  },
  "id": 90
}

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

{
  "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 массивом ответов со следующими параметрами:

Параметры Значение
question_id ID вопроса(int)
response_body Ответ пользователя(string 255)
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": 137
  },
  {
    "user_id": "1",
    "question_id": "4",
    "response_body": "oooooooooooo2222222",
    "user_questionnaire_uuid": "d222f858-60fd-47fb-8731-dc9d5fc384c5",
    "created_at": {
      "expression": "NOW()",
      "params": []
    },
    "updated_at": {
      "expression": "NOW()",
      "params": []
    },
    "id": 138
  }
]

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

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