From 0113d2e9c9ff34a6ffb10707cc76d34b67a0c367 Mon Sep 17 00:00:00 2001
From: Jake Vanderwerf <get@jakevanderwerf.ca>
Date: Mon, 19 Jan 2026 16:29:41 +0000
Subject: [PATCH] =Refactored window.getTemplate into a full templating class window.jvbTemplates. Refactored CRUD.js, UploadManager.js, FormController.js, PopulateForm.js with that in mind
---
inc/rest/routes/ReferralRoutes.php | 63 ++++++++++++++++++++++++-------
1 files changed, 49 insertions(+), 14 deletions(-)
diff --git a/inc/rest/routes/ReferralRoutes.php b/inc/rest/routes/ReferralRoutes.php
index aec6c55..fd0627b 100644
--- a/inc/rest/routes/ReferralRoutes.php
+++ b/inc/rest/routes/ReferralRoutes.php
@@ -640,8 +640,21 @@
if ($result['success']) {
$this->cache->clear();
}
- error_log('Result: '.print_r($result, true));
- return $result;
+
+ // Build summary message
+ $textResult = 'Sent invitations. ';
+ $textResult .= 'Success: ' . count($result['result']['success']) . '. ';
+ $textResult .= 'Failed: ' . count($result['result']['failed']) . '.';
+
+ return [
+ 'success' => true,
+ 'message' => $textResult,
+ 'details' => [
+ 'successful' => $result['result']['success'],
+ 'failed' => $result['result']['failed'],
+ 'total' => count($data['invitations'])
+ ]
+ ];
}
/**
@@ -649,20 +662,31 @@
*/
public function handleClientUpload(WP_REST_Request $request): WP_REST_Response
{
- $files = $request->get_file_params();
-
- if (!isset($files['file'])) {
+ // Access files from $_FILES directly for REST API uploads
+ if (empty($_FILES['file'])) {
return new WP_REST_Response([
'success' => false,
'message' => 'No file uploaded'
], 400);
}
- $file = $files['file'];
+ $file = $_FILES['file'];
+
+ // Check for upload errors
+ if ($file['error'] !== UPLOAD_ERR_OK) {
+ return new WP_REST_Response([
+ 'success' => false,
+ 'message' => 'File upload error: ' . $file['error']
+ ], 400);
+ }
// Validate file type
$allowed_types = ['text/csv', 'application/vnd.ms-excel', 'text/plain'];
- if (!in_array($file['type'], $allowed_types)) {
+ $finfo = finfo_open(FILEINFO_MIME_TYPE);
+ $mime_type = finfo_file($finfo, $file['tmp_name']);
+ finfo_close($finfo);
+
+ if (!in_array($mime_type, $allowed_types) && !in_array($file['type'], $allowed_types)) {
return new WP_REST_Response([
'success' => false,
'message' => 'File must be a CSV'
@@ -679,7 +703,7 @@
// Import using JaneAppClientImporter
$importer = new JaneAppClientImporter();
- $default_role = get_option(BASE . 'client_import_role', JVB_USER);
+ $default_role = get_option(BASE . 'referral_role', JVB_USER);
$options = [
'update_existing' => true,
@@ -716,7 +740,7 @@
return new WP_REST_Response([
'success' => true,
'message' => $message,
- 'items' => $result,
+ 'stats' => $result,
'skipped_details' => $details
]);
}
@@ -726,20 +750,31 @@
*/
public function handleSalesUpload(WP_REST_Request $request): WP_REST_Response
{
- $files = $request->get_file_params();
-
- if (!isset($files['file'])) {
+ // Access files from $_FILES directly for REST API uploads
+ if (empty($_FILES['file'])) {
return new WP_REST_Response([
'success' => false,
'message' => 'No file uploaded'
], 400);
}
- $file = $files['file'];
+ $file = $_FILES['file'];
+
+ // Check for upload errors
+ if ($file['error'] !== UPLOAD_ERR_OK) {
+ return new WP_REST_Response([
+ 'success' => false,
+ 'message' => 'File upload error: ' . $file['error']
+ ], 400);
+ }
// Validate file type
$allowed_types = ['text/csv', 'application/vnd.ms-excel', 'text/plain'];
- if (!in_array($file['type'], $allowed_types)) {
+ $finfo = finfo_open(FILEINFO_MIME_TYPE);
+ $mime_type = finfo_file($finfo, $file['tmp_name']);
+ finfo_close($finfo);
+
+ if (!in_array($mime_type, $allowed_types) && !in_array($file['type'], $allowed_types)) {
return new WP_REST_Response([
'success' => false,
'message' => 'File must be a CSV'
--
Gitblit v1.10.0