From d38d825e3484d822ea3c1f0fb1df37ecf386b18a Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Sun, 04 Jan 2026 19:54:16 +0000
Subject: [PATCH] =TaxonomyCreator.js debugging
---
inc/rest/routes/FavouritesRoutes.php | 64 +++++++++++++++++++++++++++----
1 files changed, 55 insertions(+), 9 deletions(-)
diff --git a/inc/rest/routes/FavouritesRoutes.php b/inc/rest/routes/FavouritesRoutes.php
index 5ab3310..29112b5 100644
--- a/inc/rest/routes/FavouritesRoutes.php
+++ b/inc/rest/routes/FavouritesRoutes.php
@@ -33,6 +33,7 @@
add_action('before_delete_post', [$this, 'cleanupPostFavourites']);
add_action('delete_term', [$this, 'cleanupTermFavourites'], 10, 3);
+ add_action('jvbUserRegistered', [$this, 'maybeAcceptListInvite'], 10, 3);
// Register cleanup scheduler
add_action('jvb_cleanupOrphanedFavourites', [$this, 'cleanupOrphanedFavourites']);
@@ -121,17 +122,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 +392,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 +414,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 +823,21 @@
*/
public function getShares(WP_REST_Request $request):WP_REST_Response
{
- $list_id = $request->get_param('list_id');
- $user_id = get_current_user_id();
+ $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');
if (!$list_id) {
return $this->createErrorResponse(
@@ -891,7 +929,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(
@@ -2825,10 +2864,10 @@
$list_name,
$inviteButton,
$inviteUrl,
- jvbSignature()
+ JVB()->email()->signature()
);
- return jvbMail($email, $subject, $message);
+ return JVB()->email()->sendEmail($email, $subject, $message);
}
/**
@@ -3072,6 +3111,13 @@
}
}
+ public function maybeAcceptListInvite(int $user_id, string $email, array $data):void
+ {
+ if (array_key_exists('list_token', $data) && !empty($data['list_token'])) {
+ $this->acceptListInvitation($data['list_token'], $email);
+ }
+ }
+
/**
* Get the owner ID for a content item
*
--
Gitblit v1.10.0