TaskController
final class TaskController extends Controller
Контроллер для управления задачами, связанными с лайками в социальной сети ВКонтакте.
Traits
Methods
Создает новый экземпляр TaskController.
Возвращает задачи или задачу по указанному статусу и/или ID аккаунта.
Получает информацию о задаче по её ID.
Создает задачи на лайки из ленты новостей и добавляет их в очередь.
Извлекает посты из ленты новостей и создает для них задачи на лайк.
Проверяет, подходит ли пост для создания задачи на лайк.
Проверяет, существует ли уже задача для данного поста.
Создает новую задачу на лайк в статусе "pending".
Создает задачи на лайки для постов со стен пользователей и добавляет их в очередь.
Объединенный метод: ищет пользователей по городу и создает задачи на лайки для их последних постов.
Обрабатывает задачи на лайки в статусе "pending" и добавляет их в очередь на выполнение.
Удаляет все задачи на основе указанного статуса и/или ID аккаунта.
Удаляет задачу по её ID.
Удаляет лайк с поста, связанного с задачей по её ID.
Details
at line 38
__construct(LoggingServiceInterface $loggingService, VkClientService $vkClient, TaskRepositoryInterface $taskRepository, AccountRepositoryInterface $accountRepository, AccountController $accountController)
Создает новый экземпляр TaskController.
at line 53
JsonResponse
getTasksByStatus(string|null $status = null, int|null $accountId = null)
Возвращает задачи или задачу по указанному статусу и/или ID аккаунта.
at line 172
JsonResponse
getTaskInfo(int $taskId)
Получает информацию о задаче по её ID.
at line 250
JsonResponse
createAndQueueLikeTasksFromNewsfeed(Request $request, bool $isCyclic = false)
Создает задачи на лайки из ленты новостей и добавляет их в очередь.
Дополнительно учитывает, является ли задача циклической, для корректной обработки внутри методов.
at line 324
protected int
fetchPostsAndCreateLikeTasks(Request $request, int $account_id, int $maxCreatedCount, bool $isCyclic)
Извлекает посты из ленты новостей и создает для них задачи на лайк.
Этот метод выполняет несколько ключевых функций:
- Получает посты из ленты новостей пользователя.
- Проверяет каждый пост на соответствие критериям для создания задачи.
- Если пост подходит, проверяет, не была ли для этого поста уже создана задача.
- Если задача не была создана, создает новую задачу на лайк в статусе "pending".
- Процесс продолжается до тех пор, пока не будет достигнуто максимальное количество созданных задач или пока не закончатся посты в ленте.
at line 388
protected bool
isValidPostForTask(array $post)
Проверяет, подходит ли пост для создания задачи на лайк.
at line 414
protected bool
checkExistingTask(int $ownerId, int $postId)
Проверяет, существует ли уже задача для данного поста.
at line 433
protected Task
createPendingLikeTask(int $accountId, array $post, bool $isCyclic)
Создает новую задачу на лайк в статусе "pending".
Метод получает информацию о пользователе через VK API, создает запись в базе данных с информацией о задаче и возвращает созданную задачу.
at line 467
JsonResponse
createLikeTasksForUserWallPosts(Request $request)
Создает задачи на лайки для постов со стен пользователей и добавляет их в очередь.
Метод принимает список доменов пользователей, получает первый пост со стены каждого пользователя, создает для него задачу на лайк и добавляет все созданные задачи в очередь на выполнение.
at line 557
JsonResponse
createLikeTasksForCityUsers(Request $request)
Объединенный метод: ищет пользователей по городу и создает задачи на лайки для их последних постов.
Принимает параметры account_id, city_id и опционально count.
at line 637
JsonResponse
processAndQueuePendingLikeTasks(string $token)
Обрабатывает задачи на лайки в статусе "pending" и добавляет их в очередь на выполнение.
Изменяет статус задач с "pending" на "queued" и создает задания в очереди Laravel.
at line 748
JsonResponse
deleteAllTasks(string|null $status = null, int|null $accountId = null)
Удаляет все задачи на основе указанного статуса и/или ID аккаунта.
at line 806
JsonResponse
deleteTaskById(int $id)
Удаляет задачу по её ID.
at line 873
JsonResponse
deleteLike(int $taskId)
Удаляет лайк с поста, связанного с задачей по её ID.