diff --git a/app/Controllers/UserController.php b/app/Controllers/UserController.php index ec046563..ea0e4fb8 100755 --- a/app/Controllers/UserController.php +++ b/app/Controllers/UserController.php @@ -779,32 +779,63 @@ class UserController extends AdminController } } + // public function downloadIncentivesFile($file_id) + // { + // try { + // $result = $this->partnerManagerIncentiveFileModel->where('id', $file_id)->first(); + + // if (!$result || empty($result['incentive_file_name'])) { + // throw new \Exception("File Name Not Found"); + // } + + // $incentive_file_name = $result['incentive_file_name']; + // $file_name = basename($incentive_file_name); + // $filePath = WRITEPATH . 'uploads/incentives/' . $file_name; + + // if (file_exists($filePath)) { + // return $this->response->download($filePath, null); + // } else { + // throw new \Exception("File Not Found"); + // } + + // } catch (\Exception $e) { + + // $this->myLogger->logme('error', $e->getMessage()); + + // // Show 404 error view + // $data['message'] = $e->getMessage(); + // return view('errors/404', $data); + // } + // } + public function downloadIncentivesFile($file_id) { try { $result = $this->partnerManagerIncentiveFileModel->where('id', $file_id)->first(); if (!$result || empty($result['incentive_file_name'])) { - throw new \Exception("File Name Not Found"); + throw new \Exception("File Name Not Found for ID {$file_id}"); } $incentive_file_name = $result['incentive_file_name']; $file_name = basename($incentive_file_name); $filePath = WRITEPATH . 'uploads/incentives/' . $file_name; - if (file_exists($filePath)) { - return $this->response->download($filePath, null); - } else { - throw new \Exception("File Not Found"); + if (!file_exists($filePath)) { + throw new \Exception("File Not Found: {$file_name}"); } - } catch (\Exception $e) { - + return $this->response->download($filePath, null); + } catch (\Throwable $e) { + // Catch all kinds of exceptions $this->myLogger->logme('error', $e->getMessage()); - // Show 404 error view - $data['message'] = $e->getMessage(); - return view('errors/404', $data); + // Return proper 404 for missing file, else 500 for unexpected error + if (str_contains($e->getMessage(), 'Not Found')) { + return $this->response->setStatusCode(404)->setBody($e->getMessage()); + } + + return $this->response->setStatusCode(500)->setBody('Internal Server Error'); } } diff --git a/app/Views/UserList.php b/app/Views/UserList.php index 82441b22..7561a427 100755 --- a/app/Views/UserList.php +++ b/app/Views/UserList.php @@ -1550,9 +1550,10 @@ table.dataTable tbody td { container.append(`
No Files have been Uploaded
`); } }, - error: function(xhr) { + error: function (xhr, status, errorThrown) { container.html(`
No Files have been Uploaded
`); - toastr.error('Server error occurred.', 'Error'); + console.log("Error: " + xhr.status + " - " + errorThrown); + if (xhr.status !== 404) toastr.error(errorThrown || xhr.responseText || 'Something went wrong', 'Error'); } }); }