Files
pds/routes/web.php
2025-10-23 15:20:26 +05:30

148 lines
5.4 KiB
PHP

<?php
use App\Mail\test;
use App\Models\EquipmentMaster;
use App\Models\InvoiceValidation;
use App\Models\Plant;
use App\Models\User;
use Filament\Facades\Filament;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
use thiagoalessio\TesseractOCR\TesseractOCR;
Route::get('/', function () {
return redirect('/admin');
});
// web.php
Route::post('/temp-upload', function (Request $request) {
if (!$request->hasFile('photo')) {
return response()->json(['success' => false], 400);
}
$file = $request->file('photo');
$filename = 'capture_' . time() . '.jpeg';
$path = $file->storeAs('temp', $filename, 'local'); // storage/app/temp
return response()->json([
'success' => true,
'path' => $path,
]);
});
Route::post('/verify-ocr', function (Request $request) {
if (!$request->has('path')) {
return response()->json(['success' => false, 'error' => 'No file path provided']);
}
$filePath = storage_path('app/private/temp/' . basename($request->path));
if (!file_exists($filePath)) {
return response()->json(['success' => false, 'error' => 'File not found']);
}
try {
// $text = (new TesseractOCR($filePath))->lang('eng')->run();
$text = (new TesseractOCR($filePath))
->executable('/usr/bin/tesseract')
->lang('eng')
->psm(6) // treats the image as a block of text
->config(['tessedit_char_whitelist' => '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'])
->run();
//return response()->json(['success' => true, 'text' => $text]);
$lines = preg_split('/\r\n|\r|\n/', $text);
$serials = array_filter(array_map('trim', $lines), fn($line) => preg_match('/^[A-Z0-9]+$/', $line));
//return response()->json(['success' => true, 'text' => $serials]);
return response()->json([
'success' => true,
'text' => array_values($serials), // send as array
]);
}
//catch (\Exception $e) {
// return response()->json(['success' => false, 'error' => $e->getMessage()]);
// }
catch (\Exception $e) {
// Log the full exception class and message
\Log::error('Tesseract OCR failed', [
'exception_class' => get_class($e),
'message' => $e->getMessage(),
'file' => $e->getFile(),
'line' => $e->getLine(),
'trace' => $e->getTraceAsString(),
]);
// Return detailed error for debugging
return response()->json([
'success' => false,
'error' => $e->getMessage(),
'exception_class' => get_class($e),
'file' => $e->getFile(),
'line' => $e->getLine(),
'trace' => $e->getTraceAsString(),
]);
}
});
Route::get('/download/{equipmentNumber}', function ($equipmentNumber) {
$model = EquipmentMaster::where('equipment_number', $equipmentNumber)->firstOrFail();
if (! $model->attachment || ! Storage::disk('local')->exists($model->attachment)) {
abort(404, 'File not found.');
}
return Storage::disk('local')->download($model->attachment);
})->name('download.attachment');
// Route::get('/admin/forgot-password', function () {
// return view('auth.forgot-password');
// })->name('filament.admin.forgot-password');
// Route::post('/admin/forgot-password', function(Request $request){
// $validator = Validator::make($request->all(), [
// 'email'=>'required|email',
// 'old_password'=>'required',
// 'password'=>'required',
// 'password_confirmation'=>'required'
// ]);
// if($validator->fails()){
// return response()->json([
// 'emailError' => $validator->errors()->first('email'),
// 'oldPasswordError' => $validator->errors()->first('old_password'),
// 'newPasswordError' => $validator->errors()->first('password'),
// 'confirmPasswordError' => $validator->errors()->first('password_confirmation')
// ]);
// }
// $user = User::where('email',$request->email)->first();
// if(!$user){
// return response()->json(['passwordError'=>'No user found with this email.']);
// }
// if(!Hash::check($request->old_password, $user->password)){
// return response()->json(['oldPasswordError'=>'Old password does not match']);
// }
// if($request->password != $request->password_confirmation){
// return response()->json(['newPasswordError'=>'New password and confirm password do not match']);
// }
// $user->password = Hash::make($request->password);
// $user->save();
// return response()->json(['success'=>'Password changed successfully!']);
// })->name('filament.admin.forgot-password.otp');
// Route::post('/admin/check-email', function(Request $request){
// $request->validate(['email' => 'required|email']);
// $exists = User::where('email', $request->email)->first();
// return response()->json(['exists' => $exists]);
// })->name('admin.check-email');