Файлы и медиа

С помощью этих методов вы можете загрузить изображение или документ и получить публичный URL файла.

Все запросы этой страницы отправляйте с Bearer сотрудника из доверенного серверного кода.

Порядок работы

  1. Получите актуальный file_type_id.
  2. Загрузите файл методом POST /api/files.
  3. Сохраните file.id для полей photo_id, preview_id, avatar_id или file_id.
  4. Используйте file.path для отображения файла.

Не фиксируйте file_type_id по примеру: справочник может отличаться между проектами.

Получить типы файлов

Метод
GET
URL
https://api.gigma.ru/api/file_types
Авторизация
Bearer сотрудника
Headers
Authorization: Bearer {token}; Accept: application/json

Получите справочник перед загрузкой и выберите подходящий fileTypes[].id.

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

GET /api/file_types HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json

Ответ

{
	"fileTypes": [
		{
			"id": 1,
			"name": "Трудовой договор",
			"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
			"created_at": "2024-03-27T07:00:46.000000Z"
		},
		{
			"id": 2,
			"name": "Аватар",
			"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
			"created_at": "2024-03-27T07:00:46.000000Z"
		}
	],
	"fileTypesCount": 2
}

Поля ответа

  • fileTypes — типы файлов;
  • fileTypes[].id — ID для поля file_type_id;
  • fileTypes[].name — название типа;
  • fileTypesCount — количество типов.

Ошибки

  • 401 — Bearer сотрудника отсутствует или недействителен.

Загрузить файл

Метод
POST
URL
https://api.gigma.ru/api/files
Авторизация
Bearer сотрудника
Headers
Authorization: Bearer {token}; Content-Type: multipart/form-data; Accept: application/json
Успешный ответ
200

Отправьте файл как multipart/form-data.

Параметры запроса

  • file (binary, обязательный) — содержимое файла;
  • file_type_id (integer, обязательный) — ID типа из GET /api/file_types;
  • link (string, опционально) — внешняя ссылка, например на видео.

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

curl https://api.gigma.ru/api/files 
	-X POST 
	-H "Authorization: Bearer <employee_token>" 
	-H "Accept: application/json" 
	-F "file=@contract.pdf" 
	-F "file_type_id=1" 
	-F "link=https://example.test/contracts/offer"

Ответ

{
	"file": {
		"id": 2201,
		"name": "contract.pdf",
		"type": {
			"id": 1,
			"name": "Трудовой договор",
			"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
			"created_at": "2024-03-27T07:00:46.000000Z"
		},
		"path": "https://api.gigma.ru/storage/uploads/contract.pdf",
		"link": "https://example.test/contracts/offer",
		"created_at": "2024-12-03T10:42:18.000000Z",
		"updated_at": "2024-12-03T10:42:18.000000Z"
	}
}

Сохраните file.id и file.path.

Ошибки

  • 401 — Bearer сотрудника отсутствует или недействителен.

Получить файл

Метод
GET
URL
https://api.gigma.ru/api/files/{id}
Авторизация
Bearer сотрудника
Headers
Authorization: Bearer {token}; Accept: application/json

Параметры пути

  • id (integer, обязательный) — ID файла.

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

GET /api/files/2201 HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <employee_token>
Accept: application/json

Ответ

{
	"file": {
		"id": 2201,
		"name": "contract.pdf",
		"type": {
			"id": 1,
			"name": "Трудовой договор",
			"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
			"created_at": "2024-03-27T07:00:46.000000Z"
		},
		"path": "https://api.gigma.ru/storage/uploads/contract.pdf",
		"created_at": "2024-12-03T10:42:18.000000Z",
		"updated_at": "2024-12-03T10:42:18.000000Z"
	}
}

Ошибки

  • 401 — Bearer сотрудника отсутствует или недействителен.

Удалить файл

Метод
DELETE
URL
https://api.gigma.ru/api/files/{id}
Авторизация
Bearer сотрудника
Headers
Authorization: Bearer {token}; Accept: application/json

Удаление необратимо. Сначала убедитесь, что ID файла не используется товарами, страницами, блоками или меню.

Параметры пути

  • id (integer, обязательный) — ID файла.

Ответ

{
	"message": "File successfully deleted"
}

Ошибки

  • 401 — Bearer сотрудника отсутствует или недействителен.

Получить тип файла

Метод
GET
URL
https://api.gigma.ru/api/file_types/{id}
Авторизация
Bearer сотрудника
Headers
Authorization: Bearer {token}; Accept: application/json

Параметры пути

  • id (integer, обязательный) — ID типа файла.

Ответ

{
	"fileType": {
		"id": 1,
		"name": "Трудовой договор",
		"avatar": "https://api.gigma.ru/storage/uploads/default.svg",
		"created_at": "2024-03-27T07:00:46.000000Z"
	}
}

Ошибки

  • 401 — Bearer сотрудника отсутствует или недействителен.

Дальнейшие шаги