From 18e7e415339ccc9adf8ade562f93abef606da16d Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Wed, 26 Aug 2026 22:24:18 +0000
Subject: [PATCH] =Cache::connects throughout codebase refactored
---
inc/rest/routes/IntegrationsSquareRoutes.php | 61 ++++++++++--------------------
1 files changed, 21 insertions(+), 40 deletions(-)
diff --git a/inc/rest/routes/IntegrationsSquareRoutes.php b/inc/rest/routes/IntegrationsSquareRoutes.php
index ea338e1..e4ce0e9 100644
--- a/inc/rest/routes/IntegrationsSquareRoutes.php
+++ b/inc/rest/routes/IntegrationsSquareRoutes.php
@@ -2,9 +2,11 @@
namespace JVBase\rest\routes;
+use Exception;
+use JVBase\Instance;
+use JVBase\integrations\services\Square;
use JVBase\meta\Meta;
use JVBase\rest\Rest;
-use Exception;
use JVBase\rest\Route;
use WP_REST_Request;
use WP_REST_Response;
@@ -15,6 +17,7 @@
class IntegrationsSquareRoutes extends Rest
{
+ use Instance;
public function registerRoutes():void
{
Route::for('square/process-payment')
@@ -78,7 +81,14 @@
}
try {
- $square = JVB()->connect('square');
+ /** @var Square $square */
+ $square = Square::getInstance();
+ if (!method_exists($square, 'getOrCreateSquareCustomer') ||
+ !method_exists($square, 'createSquareOrder') ||
+ !method_exists($square, 'saveOrderToWordPress') ||
+ !method_exists($square, 'createSquarePayment')) {
+ return $this->error('Square not set up');
+ }
// Step 1: Get or create Square customer
$customer_id = $square->getOrCreateSquareCustomer($data['customer']);
@@ -97,7 +107,7 @@
// Step 3: Create Payment in Square
$payment_response = $square->createSquarePayment(
$data['source_id'],
- $data['idempotency_key'],
+ $idempotency_key,
$data['amount'],
$order_id,
$customer_id
@@ -148,12 +158,11 @@
{
$data = $request->get_params();
error_log('Getting Saved Cards: '.print_r($data, true));
- $user_id = absint($data['user']??0);
- if ($user_id === 0) {
+ $user_id = get_current_user_id();
+ if (!$user_id) {
return $this->success(['cards' => []]);
}
- $square = JVB()->connect('square');
// Get Square customer ID for this user
$square_customer_id = get_user_meta($user_id, BASE . '_square_customer_id', true);
@@ -162,58 +171,30 @@
return $this->success(['cards' => []]);
}
- // Fetch cards from Square (2025-compliant - separate endpoint)
- $cards_response = $square->getRequest('cards?customer_id=' . $square_customer_id);
-
- if (is_wp_error($cards_response)) {
- return $this->error('Failed to fetch cards');
- }
-
- return $this->success(['cards' => $cards_response['cards']??[]]);
+ return $this->success(['cards' => Square::getInstance()->getUserCards( $square_customer_id)]);
}
public function getOrderHistory(WP_REST_Request $request):WP_REST_Response
{
- $data = $request->get_params();
- $user_id = absint($data['user']??0);
- if ($user_id === 0) {
+ $user_id = get_current_user_id();
+ if (!$user_id) {
return $this->validationError(['message' => 'Not logged in']);
}
- // Get orders from custom post type
- $orders = get_posts([
- 'post_type' => BASE . '_sq_orders',
- 'author' => $user_id,
- 'posts_per_page' => 50,
- 'orderby' => 'date',
- 'order' => 'DESC'
- ]);
-
- $order_data = [];
- foreach ($orders as $order) {
- $meta = Meta::forPost($order->ID);
- $fields = $meta->getAll(['square_order_id', 'status', 'amount', 'items', 'created_at', 'pickup_time']);
- $order_data[] = array_merge([
- 'wp_order_id' => $order->ID,
- ], $fields);
- }
-
- return $this->success(['orders' => $order_data]);
+ return $this->success(['orders' => Square::getInstance()->getOrderHistory($user_id)]);
}
public function getOrderStatus(WP_REST_Request $request):WP_REST_Response
{
$order_id = $request->get_param('order_id');
-
- // Find WP post by Square order ID
- $wp_order_id = get_option(BASE . 'square_order_map_' . $order_id);
+ $wp_order_id = Square::getInstance()->getOrderPost($order_id);
if (!$wp_order_id) {
return $this->error('Order not found');
}
$meta = Meta::forPost($wp_order_id);
- $fields = $meta->getAll(['status', 'fulfillment_status', 'pickup_time', 'items']);
+ $fields = $meta->getAll(['square_payment_status', 'fulfillment_status', 'pickup_time', 'items']);
return $this->success(['order' => $fields]);
}
--
Gitblit v1.10.0