TaskController
final class TaskController extends Controller
Контроллер для управления задачами связанными с лайками в социальной сети ВКонтакте.
Traits
Methods
Создает новый экземпляр TaskController.
Возвращает задачи или задачу по указанному статусу и/или ID аккаунта.
Получает информацию о задаче по её ID.
Создает задачи на лайки из ленты новостей и добавляет их в очередь.
Извлекает посты из ленты новостей и создает для них задачи на лайк.
Проверяет, подходит ли пост для создания задачи на лайк.
Проверяет, существует ли уже задача для данного поста.
Создает новую задачу на лайк в статусе "pending".
Создает задачи на лайки для постов со стен пользователей и добавляет их в очередь.
Обрабатывает задачи на лайки в статусе "pending" и добавляет их в очередь на выполнение.
Создает циклическую задачу на лайки в социальной сети, используя предоставленные данные.
Подсчитывает количество задач по указанному статусу и/или ID аккаунта.
Генерирует массив уникальных случайных минут для выполнения задач в течение одного часа.
Удаляет все задачи на основе указанного статуса и/или ID аккаунта.
Удаляет задачу по её ID.
Удаляет лайк с поста, связанного с задачей по её ID.
Details
at line 34
__construct(LoggingServiceInterface $loggingService, VkClientService $vkClient, TaskRepositoryInterface $taskRepository, AccountRepositoryInterface $accountRepository, AccountController $accountController)
Создает новый экземпляр TaskController.
at line 49
JsonResponse
getTasksByStatus(Request $request, string|null $status = null, int|null $accountId = null)
Возвращает задачи или задачу по указанному статусу и/или ID аккаунта.
at line 75
JsonResponse
getTaskInfo(int $taskId)
Получает информацию о задаче по её ID.
at line 118
JsonResponse
createAndQueueLikeTasksFromNewsfeed(Request $request, bool $isCyclic = false)
Создает задачи на лайки из ленты новостей и добавляет их в очередь.
Дополнительно учитывает, является ли задача циклической, для корректной обработки внутри методов.
at line 151
protected int
fetchPostsAndCreateLikeTasks(Request $request, int $account_id, int $maxCreatedCount, bool $isCyclic)
Извлекает посты из ленты новостей и создает для них задачи на лайк.
Этот метод выполняет несколько ключевых функций:
- Получает посты из ленты новостей пользователя.
- Проверяет каждый пост на соответствие критериям для создания задачи.
- Если пост подходит, проверяет, не была ли для этого поста уже создана задача.
- Если задача не была создана, создает новую задачу на лайк в статусе "pending".
- Процесс продолжается до тех пор, пока не будет достигнуто максимальное количество созданных задач или пока не закончатся посты в ленте.
at line 215
protected bool
isValidPostForTask(array $post)
Проверяет, подходит ли пост для создания задачи на лайк.
at line 241
protected bool
checkExistingTask(int $ownerId, int $postId)
Проверяет, существует ли уже задача для данного поста.
at line 260
protected Task
createPendingLikeTask(int $accountId, array $post, bool $isCyclic)
Создает новую задачу на лайк в статусе "pending".
Метод получает информацию о пользователе через VK API, создает запись в базе данных с информацией о задаче и возвращает созданную задачу.
at line 294
JsonResponse
createLikeTasksForUserWallPosts(Request $request)
Создает задачи на лайки для постов со стен пользователей и добавляет их в очередь.
Метод принимает список доменов пользователей, получает первый пост со стены каждого пользователя, создает для него задачу на лайк и добавляет все созданные задачи в очередь на выполнение.
at line 344
JsonResponse
processAndQueuePendingLikeTasks(string $token)
Обрабатывает задачи на лайки в статусе "pending" и добавляет их в очередь на выполнение.
Изменяет статус задач с "pending" на "queued" и создает задания в очереди Laravel.
at line 414
JsonResponse
createCyclicTask(Request $request)
Создает циклическую задачу на лайки в социальной сети, используя предоставленные данные.
Этот метод обрабатывает HTTP-запрос, содержащий необходимые данные для создания циклической задачи, включая идентификатор аккаунта, количество задач в час, общее количество задач и статус задачи. Он также генерирует уникальное расписание (массив уникальных случайных минут в течение часа), в которое будут выполняться задачи, и сохраняет это расписание в базе данных.
at line 446
JsonResponse
countTasksByAccountAndStatus(string|null $status = null, int|null $accountId = null)
Подсчитывает количество задач по указанному статусу и/или ID аккаунта.
at line 470
array
generateUniqueRandomMinutes(int $count)
Генерирует массив уникальных случайных минут для выполнения задач в течение одного часа.
Этот метод используется для создания расписания выполнения задач на лайки в социальной сети, гарантируя, что каждая задача будет запланирована на уникальную минуту в пределах одного часа. Таким образом обеспечивается равномерное распределение задач во времени.
at line 494
JsonResponse
deleteAllTasks(string|null $status = null, int|null $accountId = null)
Удаляет все задачи на основе указанного статуса и/или ID аккаунта.
at line 510
JsonResponse
deleteTaskById(int $id)
Удаляет задачу по её ID.
at line 541
JsonResponse
deleteLike(int $taskId)
Удаляет лайк с поста, связанного с задачей по её ID.