← Назад: Telegram Bot | Далее: Правила и конвенции
TaskMate API предоставляет REST интерфейс для управления задачами в автодилерах. Все эндпоинты используют JSON формат и требуют аутентификации через Bearer токены (Sanctum).
Base URL: /api/v1
Аутентификация: Authorization: Bearer {token}
Формат дат: UTC ISO 8601 с Z суффиксом (2024-01-15T10:30:00Z)
Аутентификация пользователя.
Request:
{
"email": "user@example.com",
"password": "password"
}Response:
{
"data": {
"user": {
"id": 1,
"name": "Иван Иванов",
"email": "user@example.com",
"role": "employee"
},
"token": "1|abc123..."
}
}Получить список пользователей дилера.
Query Parameters:
search— поиск по имени/emailrole— фильтр по ролиper_page— элементов на страницу
Response:
{
"data": [
{
"id": 1,
"name": "Иван Иванов",
"email": "user@example.com",
"role": "employee",
"created_at": "2024-01-15T10:30:00Z"
}
],
"meta": { "per_page": 15, "total": 50 }
}Получить пользователя по ID.
Создать пользователя.
Request:
{
"name": "Новый Пользователь",
"email": "new@example.com",
"password": "password123",
"role": "employee"
}Обновить пользователя.
Удалить пользователя (soft delete).
Список дилеров (для owner).
Детали дилера.
Создать дилер.
Обновить дилер.
Удалить дилер.
Список смен.
Query Parameters:
user_id— фильтр по пользователюdate_from,date_to— диапазон датstatus— active/completed
Текущая активная смена пользователя.
Мои смены.
Создать смену.
Request:
{
"user_id": 1,
"schedule_id": 1,
"start_time": "2024-01-15T09:00:00Z",
"end_time": "2024-01-15T18:00:00Z"
}Обновить смену.
Удалить смену.
Список задач.
Query Parameters:
status— pending/in_progress/pending_review/verified/rejectedtype— notification/completion/completion_with_proofassigned_user_id— задачи пользователяcreator_id— созданные пользователемdate_from,date_to— диапазон датpriority— low/medium/highsearch— поиск по названию/описанию
История моих задач.
Детали задачи.
Response:
{
"data": {
"id": 1,
"title": "Проверить документы",
"description": "Проверить документы клиента",
"type": "completion_with_proof",
"status": "pending",
"priority": "medium",
"created_at": "2024-01-15T10:30:00Z",
"deadline": "2024-01-16T10:30:00Z",
"creator": { "id": 2, "name": "Менеджер" },
"assignments": [
{
"user": { "id": 1, "name": "Сотрудник" },
"assigned_at": "2024-01-15T10:30:00Z"
}
],
"responses": []
}
}Создать задачу.
Request:
{
"title": "Новая задача",
"description": "Описание",
"type": "completion",
"priority": "medium",
"deadline": "2024-01-16T10:30:00Z",
"assigned_user_ids": [1, 2]
}Обновить задачу.
Удалить задачу.
Изменить статус задачи.
Request:
{
"status": "in_progress",
"proof_files": [
{ "name": "doc.pdf", "size": 1024000, "mime_type": "application/pdf" }
]
}Одобрить задачу.
Request:
{
"comment": "Хорошо выполнено"
}Отклонить задачу.
Request:
{
"comment": "Нужно исправить"
}Скачать файл доказательства (signed URL).
Удалить файл доказательства.
Список генераторов.
Детали генератора.
Сгенерированные задачи.
Создать генератор.
Request:
{
"name": "Ежедневная проверка",
"template": {
"title": "Проверка оборудования",
"type": "completion_with_proof",
"schedule": "daily",
"assigned_user_ids": [1]
},
"active": true
}Обновить генератор.
Удалить генератор.
Приостановить генератор.
Возобновить генератор.
Архивные задачи.
Восстановить задачу из архива.
Все настройки дилера.
Конкретная настройка.
Обновить настройку.
Календарь на год.
Праздничные дни.
Обновить день календаря.
Статистика для dashboard.
Response:
{
"data": {
"today_tasks": {
"overdue": 5,
"pending": 10,
"completed": 8
},
"weekly_stats": {
"created": 25,
"completed": 22,
"verified": 20
},
"user_stats": {
"my_overdue": 2,
"my_pending": 3
}
}
}Общие отчеты.
Детали по проблемам.
Список важных ссылок.
Создать ссылку.
Обновить ссылку.
Удалить ссылку.
Общая конфигурация загрузки.
Конфигурация для preset.
Настройки уведомлений.
Обновить настройки канала.
Массовое обновление.
Сброс к дефолтам.
API возвращает стандартные HTTP статусы:
200— Успех201— Создано400— Bad Request (валидация)401— Unauthorized403— Forbidden (права доступа)404— Not Found422— Unprocessable Entity (бизнес-логика)500— Internal Server Error
Формат ошибки:
{
"message": "Validation failed",
"errors": {
"title": ["Поле обязательно для заполнения"]
}
}Все аутентифицированные эндпоинты ограничены: 60 запросов в минуту.