Jake Vanderwerf
2025-11-04 42fa8304ddb811b0f725f245130f70c0f5e86a6c
inc/rest/routes/FavouritesRoutes.php
@@ -121,17 +121,26 @@
            'success'   => false,
            'message'   => 'No user set'
         ];
      }elseif (count($args) === 1 || (array_key_exists('all', $args) && $args['all'] === true)) {
      }
      // Check HTTP cache headers for user-specific data
      $cache_check = $this->checkUserHeaders($request, $args['user'], 'favourites');
      if ($cache_check) {
         return $cache_check;
      }
      if (count($args) === 1 || (array_key_exists('all', $args) && $args['all'] === true)) {
            $result = $this->getAllFavourites($args['user']);
      } else {
         $result = $this->cache->remember(
            $args,
            function() use ($args) {
               return $this->getFilteredFavourites($args);
               $response = new WP_REST_Response($this->getFilteredFavourites($args));
               return $this->addCacheHeaders($response);
            }
         );
      }
      return new WP_REST_Response($result);
      $response = new WP_REST_Response($result);
      return $this->addCacheHeaders($response);
    }
   protected function getFilteredFavourites(array $args):array
@@ -382,6 +391,20 @@
    public function getLists(WP_REST_Request $request):WP_REST_Response
    {
        $user_id = get_current_user_id();
      if (!$user_id || !$this->userCheck($user_id)) {
         return new WP_REST_Response([
            'success' => false,
            'message' => 'Invalid user'
         ]);
      }
      // Check HTTP cache headers
      $cache_check = $this->checkUserHeaders($request, $user_id, 'favourites_lists');
      if ($cache_check) {
         return $cache_check;
      }
        $list_id = $request->get_param('id');
        if ($list_id) {
@@ -390,7 +413,8 @@
            $response = $this->getAvailableLists($user_id);
        }
        return new WP_REST_Response($response);
        $response = new WP_REST_Response($response);
      return $this->addCacheHeaders($response);
    }
    /**
     * Get lists available to a user (owned and shared)
@@ -798,8 +822,21 @@
     */
    public function getShares(WP_REST_Request $request):WP_REST_Response
    {
      $user_id = $request->get_param('user');
      if (!$user_id || !$this->userCheck($user_id)) {
         return new WP_REST_Response([
            'success' => false,
            'message' => 'Invalid user'
         ]);
      }
      // Check HTTP cache headers
      $cache_check = $this->checkUserHeaders($request, $user_id, 'favourites_shares');
      if ($cache_check) {
         return $cache_check;
      }
        $list_id = $request->get_param('list_id');
        $user_id = get_current_user_id();
        if (!$list_id) {
            return $this->createErrorResponse(
@@ -891,7 +928,8 @@
            // Cache the results
            $this->cache->set($key, $response_data, 'favourites_list_shares');
            return new WP_REST_Response($response_data);
         $response = new WP_REST_Response($response_data);
         return $this->addCacheHeaders($response);
        } catch (Exception $e) {
            return $this->createErrorResponse(