From 8001de1db0c2e5e030ea031377ee6d477f9c3096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B0=D1=80=D0=B0=D0=BD=D0=B8=D0=BD=D0=B0=20=D0=A2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0?= Date: Fri, 29 Mar 2024 18:03:54 +0300 Subject: [PATCH 1/7] =?UTF-8?q?=D0=94=D0=B8=D1=80=D0=B5=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4?= =?UTF-8?q?=D0=BE=D0=B2=20OpenAPI=20=D0=BF=D0=BE=20=D0=BA=D0=B0=D0=BD?= =?UTF-8?q?=D0=B4=D0=B8=D0=B4=D0=B0=D1=82=D0=B0=D0=BC=20-=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Candidates/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Candidates/.gitkeep diff --git a/Candidates/.gitkeep b/Candidates/.gitkeep new file mode 100644 index 0000000..e69de29 -- GitLab From 9f15cadd8233acf43cd39cc2fe244019d26d96e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B0=D1=80=D0=B0=D0=BD=D0=B8=D0=BD=D0=B0=20=D0=A2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0?= Date: Fri, 29 Mar 2024 18:09:57 +0300 Subject: [PATCH 2/7] Add new file --- Candidates/post_file.md | 114 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 Candidates/post_file.md diff --git a/Candidates/post_file.md b/Candidates/post_file.md new file mode 100644 index 0000000..9345196 --- /dev/null +++ b/Candidates/post_file.md @@ -0,0 +1,114 @@ +# Добавить несколько файлов к кандидату - описание запроса + +`POST/open-api/objects/candidates/{candidateId}/file` + +Этот endpoint позволяет загрузить один файл к существующему кандидату. **Для данного запроса необходимо передавать данные, используя многопартные запросы (multipart/form-data).** Добавленный файл отобразится на вкладке "Вложения" в карточке кандидата. + +# Параметры и тело запроса + +## PATH PARAMETRS + +| **Id** | **Тип данных** | **Название и Описание** | **Допустимые форматы/значения** | +| --- | --- | --- | --- | +| `candidateId` | string | Id кандидата | **Обязательное поле** | + +## QUERY PARAMETRS + +| Id | Тип данных | Название и Описание | Допустимые форматы/значения | +| --- | --- | --- | --- | +| fileType | string | Тип файла. Допустимые значения: `resume` - Файл резюме, `avatar` - аватар (фото), `testResultDataFile` - результаты тестов, `documents` - прочие документы, `education` - документы об образовании | **Обязательное поле** | + +  + +## REQUEST BODY SCHEMA + +| **Id** | **Тип данных** | **Название и Описание** | **Допустимые форматы/значения** | +| --- | --- | --- | --- | +| `file` | string <binary> | Файл. Поддерживаемые расширения - `.pdf`, `.doc`, `.docx`, `.rtf`, `.txt`,`.xls`, `.xlsx`, `.png`, `.jpg`, `.mpeg`, `.mp4`, `.avi`, `.mov`, `.mkv`, `.webm`, `.mp3`, `.midi`, `.wav`, `.pptx`, `.pptm`, `.potx`, `.potm`, `.msg`, `.eml`, `.ics`, `.vcs`. Размер файла - не более 10 Мб. | **Обязательное поле** | +| | | | | + +# Responses + +## RESPONSE SCHEMA + +| **Id** | **Тип данных** | **Название и Описание** | **Допустимые форматы/значения** | +| --- | --- | --- | --- | +| `CandidateId` | string | Id кандидата | **Обязательное поле** | +| `Result` | object (CandidateFileUploadResult) | Результат | **Обязательное поле** | + +Описание объекта `CandidateFileUploadResult` + +| **Id** | **Тип данных** | **Название и Описание** | **Допустимые форматы/значения** | +| --- | --- | --- | --- | +| `IsOk` | boolean | Успешно ли загружен файл | | +| `FileId` | string | Id файла | | +| `FileName` | string | Имя файла | | +| `ErrorMessage` | string | Сообщение об ошибке | | + +# Примеры использования + +## Пример cURL запроса на добавление файла резюме к кандидату + +```cURL +curl --location --globoff 'https://api.dev.skillaz.ru/open-api/objects/candidates/{candidateId}/file?fileType=resume' \ +--header 'Authorization: Bearer {token}' \ +--form 'file=@"/C:/Users/login/Рабочий стол/Резюме.pdf"' +``` + +## Ответ на успешный запрос + +Возвращается код `200 Успешно` с телом вида + +```JSON +{ + "CandidateId": "65d7105ce9aabc65e414bfc8", + "Result": { + "IsOk": true, + "FileId": "65ef22d38effba47b6cad790", + "FileName": "33.jpg", + "ErrorMessage": null + } +} +``` + +## Примеры частых ошибок + +### Пример ошибки  - слишком большой файл + +В ответе на запрос получите ошибку `400` с расшифровкой вида: + +```Json +{ + "errors": { + "": [ + "Failed to read the request form. Request body too large. The max request body size is 10485760 bytes." + ] + }, + "type": "https://api.skillaz.ru/help/swagger", + "title": "Validation error", + "status": 400, + "detail": "Please refer to the errors property for additional details.", + "instance": "/open-api/objects/candidates/65d7105ce9aabc65e414bfc8/file", + "requestId": "0HN1S9QQIIL0F:00000002" +} +``` + +### Пример ошибки - не поддерживаемое расширение файла + +В ответе на запрос получите ошибку `400` с расшифровкой вида: + +```json +{ + "Type": "https://api.skillaz.ru/help/swagger", + "Title": "Failed to upload file", + "Status": 400, + "Detail": "allowedToAttachFileTypes. Поддерживаемые расширения - Pdf, Doc, DocX, Rtf, Txt, Xls, Xlsx, Png, Jpg, Mpeg, Mp4, Avi, Mov, Mkv, Webm, Mp3, Midi, Wav, Pptx, Pptm, Potx, Potm, Msg, Eml, Ics, Vcs", + "Instance": null, + "Extensions": { + "requestId": "0HN1S9QQIIL4D:00000001", + "externalRequestId": "685761c4680031c3825d94d22d5857e9" + } +} +``` + +  -- GitLab From 5b5eb7a046313dda1185f627cf00d95bbd72d07b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B0=D1=80=D0=B0=D0=BD=D0=B8=D0=BD=D0=B0=20=D0=A2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0?= Date: Fri, 29 Mar 2024 18:14:07 +0300 Subject: [PATCH 3/7] Update file post_file.md --- Candidates/post_file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Candidates/post_file.md b/Candidates/post_file.md index 9345196..962f6d2 100644 --- a/Candidates/post_file.md +++ b/Candidates/post_file.md @@ -2,7 +2,7 @@ `POST/open-api/objects/candidates/{candidateId}/file` -Этот endpoint позволяет загрузить один файл к существующему кандидату. **Для данного запроса необходимо передавать данные, используя многопартные запросы (multipart/form-data).** Добавленный файл отобразится на вкладке "Вложения" в карточке кандидата. +Этот endpoint позволяет загрузить один файл к существующему кандидату. Для данного запроса необходимо передавать данные, используя многопартные запросы (multipart/form-data).Добавленный файл отобразится на вкладке "Вложения" в карточке кандидата. # Параметры и тело запроса @@ -16,7 +16,7 @@ | Id | Тип данных | Название и Описание | Допустимые форматы/значения | | --- | --- | --- | --- | -| fileType | string | Тип файла. Допустимые значения: `resume` - Файл резюме, `avatar` - аватар (фото), `testResultDataFile` - результаты тестов, `documents` - прочие документы, `education` - документы об образовании | **Обязательное поле** | +| `fileType` | string | Тип файла. Допустимые значения: `resume` - Файл резюме, `avatar` - аватар (фото), `testResultDataFile` - результаты тестов, `documents` - прочие документы, `education` - документы об образовании | **Обязательное поле** |   -- GitLab From 58608159a6fcd47c801e310588439185d57b6df2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B0=D1=80=D0=B0=D0=BD=D0=B8=D0=BD=D0=B0=20=D0=A2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0?= Date: Fri, 29 Mar 2024 18:15:28 +0300 Subject: [PATCH 4/7] Add new file --- Candidates/post_files | 1 + 1 file changed, 1 insertion(+) create mode 100644 Candidates/post_files diff --git a/Candidates/post_files b/Candidates/post_files new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Candidates/post_files @@ -0,0 +1 @@ + -- GitLab From 61aed783be3d768b7963074c46bf74eb1c745e42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B0=D1=80=D0=B0=D0=BD=D0=B8=D0=BD=D0=B0=20=D0=A2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0?= Date: Fri, 29 Mar 2024 18:17:03 +0300 Subject: [PATCH 5/7] Delete post_files --- Candidates/post_files | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Candidates/post_files diff --git a/Candidates/post_files b/Candidates/post_files deleted file mode 100644 index 8b13789..0000000 --- a/Candidates/post_files +++ /dev/null @@ -1 +0,0 @@ - -- GitLab From 88c72a6240df7fe41b8f28b1489b8367867c0a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B0=D1=80=D0=B0=D0=BD=D0=B8=D0=BD=D0=B0=20=D0=A2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0?= Date: Fri, 29 Mar 2024 18:17:41 +0300 Subject: [PATCH 6/7] Add new file --- Candidates/post_files.md | 131 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 Candidates/post_files.md diff --git a/Candidates/post_files.md b/Candidates/post_files.md new file mode 100644 index 0000000..c54f222 --- /dev/null +++ b/Candidates/post_files.md @@ -0,0 +1,131 @@ +# Добавить несколько файлов к кандидату - описание запроса + +`POST /open-api/objects/candidates/{candidateId}/files` + +Этот endpoint позволяет загрузить сразу несколько файлов одного типа к существующему кандидату. **Для данного запроса необходимо передавать данные, используя многопартные запросы (multipart/form-data).** Добавленные файлы отобразятся на вкладке "Вложения" в карточке кандидата. + +# Параметры и тело запроса + +## PATH PARAMETRS + +| **Id** | **Тип данных** | **Название и Описание** | **Допустимые форматы/значения** | +| --- | --- | --- | --- | +| `candidateId` | string | Id кандидата | **Обязательное поле** | + +## QUERY PARAMETRS + +| Id | Тип данных | Название и Описание | Допустимые форматы/значения | +| --- | --- | --- | --- | +| fileType | string | Тип файла. Допустимые значения: `resume` - Файл резюме, `avatar` - аватар (фото), `testResultDataFile` - результаты тестов, `documents` - прочие документы, `education` - документы об образовании | **Обязательное поле** | + +- List item + +## REQUEST BODY SCHEMA + +| **Id** | **Тип данных** | **Название и Описание** | **Допустимые форматы/значения** | +| --- | --- | --- | --- | +| `files` | string <binary> | Файл. Поддерживаемые расширения - `.pdf`, `.doc`, `.docx`, `.rtf`, `.txt`,`.xls`, `.xlsx`, `.png`, `.jpg`, `.mpeg`, `.mp4`, `.avi`, `.mov`, `.mkv`, `.webm`, `.mp3`, `.midi`, `.wav`, `.pptx`, `.pptm`, `.potx`, `.potm`, `.msg`, `.eml`, `.ics`, `.vcs`. Размер файла - не более 10 Мб. | **Обязательное поле** | +| | | | | + +# Responses + +## RESPONSE SCHEMA + +| **Id** | **Тип данных** | **Название и Описание** | **Допустимые форматы/значения** | +| --- | --- | --- | --- | +| `CandidateId` | string | Id кандидата | **Обязательное поле** | +| `Results` | Array of objects (CandidateFileUploadResult) | Результаты | **Обязательное поле** | + +Описание объекта `CandidateFileUploadResult` + +| **Id** | **Тип данных** | **Название и Описание** | **Допустимые форматы/значения** | +| --- | --- | --- | --- | +| `IsOk` | boolean | Успешно ли загружен файл | | +| `FileId` | string | Id файла | | +| `FileName` | string | Имя файла | | +| `ErrorMessage` | string | Сообщение об ошибке | | + +  + +# Примеры использования + +## Пример cURL запроса на добавление файла резюме к кандидату + +``` +curl --location --globoff 'https://api.dev.skillaz.ru/open-api/objects/candidates/{candidateId}/files?fileType=documents' \ +--header 'Authorization: Bearer {token}' \ +--form 'files=@"/C:/Users/login/Рабочий стол/Результат медосмотра.pdf"' +--form 'files=@"/C:/Users/login/Рабочий стол/Результат полиграфа.pdf"' +``` + +## Ответ на успешный запрос + +Возвращается код `200 Успешно` с телом вида + +``` +{ + "CandidateId": "65d7105ce9aabc65e414bfc8", + "Result": { + "IsOk": true, + "FileId": "65ef22d38effba47b6cad790", + "FileName": "Результат медосмотра.pdf", + "ErrorMessage": null + }, + { + "IsOk": true, + "FileId": "65ef22d38effba47b6cad790", + "FileName": "Результат полиграфа.pdf", + "ErrorMessage": null + } +} +``` + +## Примеры частых ошибок + +### Пример ошибки  - слишком большой файл + +Если хотя бы один файл в запросе превышает 10 Мб - в ответе на запрос получите ошибку `400` с расшифровкой вида: + +``` +{ + "errors": { + "": [ + "Failed to read the request form. Request body too large. The max request body size is 10485760 bytes." + ] + }, + "type": "https://api.skillaz.ru/help/swagger", + "title": "Validation error", + "status": 400, + "detail": "Please refer to the errors property for additional details.", + "instance": "/open-api/objects/candidates/658af84a22923f1d8581a79c/files", + "requestId": "0HN2A9BE55OVM:00000001" +} +``` + +Остальные файлы так же не загрузятся. + +### Пример ошибки - не поддерживаемое расширение файла + +Если один из файлов имеет неподходящее расширение - в ответе на запрос вы получите код `200 ОК`, но ошибка будет отражена в результате загрузки в isOk и ErrorMessage. Остальные файлы, прошедшие валидацию, будут загружены. Пример ответа: + +``` +{ + "CandidateId": "658af84a22923f1d8581a79c", + "Results": [ + { + "IsOk": true, + "FileId": "65fdab26a618e911fa358a0f", + "FileName": "Кузя.png", + "ErrorMessage": null + }, + { + "IsOk": false, + "FileId": null, + "FileName": "check-list.json", + "ErrorMessage": "allowedToAttachFileTypes. Поддерживаемые расширения - Pdf, Doc, DocX, Rtf, Txt, Xls, Xlsx, Png, Jpg, Mpeg, Mp4, Avi, Mov, Mkv, Webm, Mp3, Midi, Wav, Pptx, Pptm, Potx, Potm, Msg, Eml, Ics, Vcs" + } + ] +} +``` + +Если все загружаемые файлы будут иметь некорректный формат - в ответе все равно будет содержаться код `200 ОК`. -- GitLab From f58768a1d55d4c070ee2dade1a146c24f9d02c37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=93=D0=B0=D1=80=D0=B0=D0=BD=D0=B8=D0=BD=D0=B0=20=D0=A2?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=D1=8F=D0=BD=D0=B0?= Date: Fri, 29 Mar 2024 18:18:26 +0300 Subject: [PATCH 7/7] Update post_files.md --- Candidates/post_files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Candidates/post_files.md b/Candidates/post_files.md index c54f222..33b8aea 100644 --- a/Candidates/post_files.md +++ b/Candidates/post_files.md @@ -2,7 +2,7 @@ `POST /open-api/objects/candidates/{candidateId}/files` -Этот endpoint позволяет загрузить сразу несколько файлов одного типа к существующему кандидату. **Для данного запроса необходимо передавать данные, используя многопартные запросы (multipart/form-data).** Добавленные файлы отобразятся на вкладке "Вложения" в карточке кандидата. +Этот endpoint позволяет загрузить сразу несколько файлов одного типа к существующему кандидату. Для данного запроса необходимо передавать данные, используя многопартные запросы (multipart/form-data). Добавленные файлы отобразятся на вкладке "Вложения" в карточке кандидата. # Параметры и тело запроса -- GitLab