İlk temizlik tamamlandı bir önceki projeden

This commit is contained in:
Ümit Tunç
2026-04-28 21:14:25 +03:00
commit f80443aec0
10000 changed files with 959965 additions and 0 deletions
@@ -0,0 +1,140 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Jobs\TpCreatorJob;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Cache;
class TpCreatorController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
/**
* Dispatch TP creator jobs to queue
*
* @param Request $request
* @return \Illuminate\Http\JsonResponse
*/
public function dispatchJobs(Request $request)
{
$u = u();
// Check user authentication
if(!isset($u->level)) {
return response()->json([
'status' => 'error',
'message' => e2('Permission error')
], 403);
}
// Validate required parameters
if(!$request->has('_token') || !$request->has('lines') || !$request->has('documents')) {
return response()->json([
'status' => 'error',
'message' => e2('Missing required parameters')
], 400);
}
try {
Log::info('=== TP CREATOR DISPATCH STARTED ===');
$lines = j($request->input('lines'));
$documents = j($request->input('documents'));
$path = $request->input('path', '');
$override = filter_var($request->input('override', 'true'), FILTER_VALIDATE_BOOLEAN);
Log::info('Parsed data', [
'lines_count' => count($lines),
'documents_count' => count($documents),
'path' => $path,
'override' => $override
]);
// Validate lines array
if(!is_array($lines) || count($lines) === 0) {
throw new \Exception(e2("No lines selected"));
}
// Validate documents array
if(!is_array($documents) || count($documents) === 0) {
throw new \Exception(e2("No documents selected"));
}
$jobIds = [];
// Dispatch job for each line (Test Package)
foreach($lines as $lineData) {
$jobId = uniqid('tp_', true);
// Prepare job data
$jobData = [
'line_data' => $lineData,
'documents' => $documents,
'settings' => [
'path' => $path,
'override' => $override,
'user_id' => $u->id,
'user_name' => $u->name,
],
'job_id' => $jobId
];
// Add job to queue with "pending" status BEFORE dispatch
$queue = Cache::get('tp-creator-queue', []);
$queue[$jobId] = [
'user' => $u,
'total_registers' => count($documents), // Just a metric
'line_identifier' => $lineData['test_package_number'] ?? 'unknown',
'created_at' => now()->toDateTimeString(),
'status' => 'pending',
'description' => 'Pending...',
'progress' => 0
];
Cache::put('tp-creator-queue', $queue, now()->addHours(24));
// Dispatch the job with user ID
Log::info('About to dispatch TP job', [
'job_id' => $jobId,
'line_identifier' => $lineData['test_package_number'] ?? 'unknown',
'user_id' => $u->id,
'status' => 'pending'
]);
TpCreatorJob::dispatch($jobData, $u->id);
$jobIds[] = [
'job_id' => $jobId,
'line_identifier' => $lineData['test_package_number'] ?? 'unknown'
];
}
$message = e2("Successfully dispatched :count jobs to queue.", [
'count' => count($jobIds)
]);
return response()->json([
'status' => 'success',
'message' => $message,
'jobs' => $jobIds,
'total_jobs' => count($jobIds)
]);
} catch (\Throwable $th) {
Log::error('TP Creator Dispatch - Error', [
'error' => $th->getMessage(),
'file' => $th->getFile(),
'line' => $th->getLine()
]);
return response()->json([
'status' => 'error',
'message' => e2('Error dispatching jobs: :error', ['error' => $th->getMessage()])
], 500);
}
}
}