Skip to content

Latest commit

 

History

History
259 lines (190 loc) · 8.65 KB

artifacts.md

File metadata and controls

259 lines (190 loc) · 8.65 KB

Артефакты (фото, портфолио)

Соискатель может загружать свои файлы. На данный момент это ограничивается изображениями для прикрепления их к резюме (фото и портфолио). На основном сайте этот сервис располагается в разделе настроек, пункт «изображения».

После этого в интерфейсе создания/редактирования резюме можно использовать эти изображения.

Получение артефактов

Запрос

GET /artifacts/photo
GET /artifacts/portfolio

Ответ

Успешный ответ приходит с кодом 200 OK и содержит:

{
    "items": [
        {
            "id": "92278992",
            "state": {
                "id": "ok",
                "name": "ok"
            },
            "small": "http://...",
            "medium": "http://...",
            "description": "..."
        }
    ],
    "found": 1,
    "pages": 1,
    "page": 0,
    "per_page": 1
}

где для каждого элемента items:

Имя Тип Описание
id string уникальный идентификатор изображения
state object текущий статус изображения
state.id string идентификатор текущего статуса изображения
state.name string название текущего статуса изображения
small string или null url для получения уменьшенного изображения или null, если изображение ещё не готово
medium string или null url для получения среднего по размеру изображения или null, если изображение ещё не готово
description string описание, в данный момент только у portfolio.

Статусы изображений:

  • processing — в процессе обработки
  • failed — ошибка, скорее всего неподдерживаемый формат
  • ok — обработан, доступен для использования в резюме

Ошибки

  • 403 Forbidden – текущий пользователь не соискатель

Загрузка артефакта

Запрос

POST /artifacts

Для загрузки файла необходимо отправить запрос multipart/form-data cо следующими параметрами:

Имя Обязательный Описание
type да тип артефакта: photo или portfolio
description нет текстовое описание, имеет смысл для portfolio
file да сам файл

Ограничения на типы файлов и их размер доступны в условиях загрузки артефактов.

Ответ

Успешный ответ приходит с кодом 201 Created и содержит:

{
    "id": "123456",
    "medium": null,
    "small": null,
    "state": {
        "id": "processing",
        "name": "в обработке"
    }
}

Поля ответа аналогичны полям элементов в списке артефактов.

Ошибки

  • 403 Forbidden – текущий пользователь не соискатель
  • 400 Bad Request – ошибка в параметрах запроса или добавление изображения невозможно
  • 413 Request Entity Too Large – слишком большое изображение

Дополнительно к HTTP коду сервер может вернуть описание причины ошибки.

Условия загрузки артефактов

Условия загрузки артефактов для каждого типа запрашиваются отдельно.

Запрос

GET /artifacts/photo/conditions
GET /artifacts/portfolio/conditions

Ответ

Успешный ответ приходит с кодом 200 OK и содержит тело:

{
    "fields": {
        "description": {
            "max_length": 255,
            "min_length": 0,
            "required": false
        },
        "file": {
            "max_size": 6291456,
            "mime_type": [
                "image/jpeg",
                "image/png",
                "image/psd"
            ],
            "required": true
        },
        "type": {
            "required": true
        }
    },
    "counters": {
        "max": 20,
        "uploaded": 2
    }
}

Объект fields

Имя Тип Описание
description object условия для поля description
description.required boolean является ли поле description обязательным
description.max_length number максимальный размер текстового поля description
description.min_length number минимальный размер текстового поля description
file object условия для поля file
file.max_size number максимальный размер файла
file.mime_type array список допустимых MIME-типов файлов
file.required boolean является ли поле file обязательным
type object условия для поля type
type.required boolean является ли поле type обязательным

Объект counters

Имя Тип Описание
max число максимально возможное количество артефактов данного типа, которое можно загрузить
uploaded число количество уже загруженных артефактов данного типа

Ошибки

  • 403 Forbidden – текущий пользователь - не соискатель

Редактирование артефакта

PUT /artifacts/{id}

где id - идентификатор артефакта.

Принимаемые параметры:

  • description - текстовое описание изображения

Ответ

Успешный ответ приходит с кодом 204 No Content и не содержит тела.

Ошибки

  • 403 Forbidden – текущий пользователь не соискатель
  • 404 Not Found – артефакт не существует или не принадлежит текущему пользователю
  • 400 Bad Request – ошибка в параметрах запроса или добавление изображения невозможно

Удаление артефакта

DELETE /artifacts/{id}

где id - идентификатор артефакта.

Ответ

Успешный ответ приходит с кодом 204 No Content и не содержит тела.

Ошибки

  • 403 Forbidden – текущий пользователь не соискатель
  • 404 Not Found – артефакт не существует или не принадлежит текущему пользователю

Прикрепление фото/портфолио к резюме

Для прикрепления загруженных изображений в резюме, необходимо передать id артефакта в соответствующее поле резюме. Для удаления из резюме укажите null.