| | |
| | | |
| | | use Exception; |
| | | use JVBase\JVB; |
| | | use JVBase\managers\CacheManager; |
| | | use JVBase\managers\Cache; |
| | | use JVBase\rest\RestRouteManager; |
| | | use WP_REST_Request; |
| | | use WP_REST_Response; |
| | |
| | | use DateTimeZone; |
| | | |
| | | if (!defined('ABSPATH')) { |
| | | exit; // Exit if accessed directly |
| | | exit; // Exit if accessed directly |
| | | } |
| | | |
| | | class QueueRoutes extends RestRouteManager |
| | | { |
| | | public function __construct() |
| | | { |
| | | $this->cache_name = 'queue'; |
| | | $this->cache_ttl = 300; |
| | | parent::__construct(); |
| | | public function __construct() |
| | | { |
| | | $this->cache_name = 'queue'; |
| | | $this->cache_ttl = 300; |
| | | parent::__construct(); |
| | | |
| | | if (JVB_TESTING) { |
| | | $this->cache->clear(); |
| | | $this->cache->flush(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Registers queue routes |
| | | * @return void |
| | | */ |
| | | /** |
| | | * Registers queue routes |
| | | * @return void |
| | | */ |
| | | public function registerRoutes():void |
| | | { |
| | | register_rest_route($this->namespace, '/queue', [ |
| | |
| | | ]); |
| | | } |
| | | |
| | | /** |
| | | * Get queue operations with optional filtering |
| | | * |
| | | * @param WP_REST_Request $request |
| | | * @return WP_REST_Response |
| | | */ |
| | | /** |
| | | * Get queue operations with optional filtering |
| | | * |
| | | * @param WP_REST_Request $request |
| | | * @return WP_REST_Response |
| | | */ |
| | | public function getQueue(WP_REST_Request $request): WP_REST_Response |
| | | { |
| | | $user_id = $request->get_param('user'); |
| | |
| | | $ids = $request->get_param('ids'); |
| | | $limit = intval($request->get_param('limit')); |
| | | // Use base class user-specific header checking |
| | | $cache_check = $this->checkUserHeaders($request, $user_id, 'queue'); |
| | | $key = $this->cache->generateKey(['user'=> $user_id, 'status'=> $status, 'ids'=> $ids, 'limit'=> $limit]); |
| | | $cache_check = $this->checkHeaders($request, $key); |
| | | if ($cache_check) { |
| | | return $cache_check; |
| | | } |
| | |
| | | return $base_title; |
| | | } |
| | | |
| | | /** |
| | | * Update operation status (dismiss or retry) |
| | | * |
| | | * @param WP_REST_Request $request |
| | | * @return WP_REST_Response |
| | | */ |
| | | /** |
| | | * Update operation status (dismiss or retry) |
| | | * |
| | | * @param WP_REST_Request $request |
| | | * @return WP_REST_Response |
| | | */ |
| | | public function handleAction(WP_REST_Request $request): WP_REST_Response |
| | | { |
| | | $data = $request->get_json_params(); |
| | |
| | | $result = $this->processQueueAction($action, $operations, $user_id); |
| | | |
| | | if ($result['success']) { |
| | | CacheManager::updateTimestamp("user_{$user_id}"); |
| | | Cache::touch($user_id); |
| | | } |
| | | |
| | | return new WP_REST_Response($result); |