feat(scanner): add scan attempt detail endpoint
This commit is contained in:
@@ -5,8 +5,10 @@ namespace App\Domains\Ticket\Controllers\Scanner;
|
||||
use App\Domains\Auth\Models\User;
|
||||
use App\Domains\Ticket\Requests\ScanAttemptIndexRequest;
|
||||
use App\Domains\Ticket\Resources\Scanner\ScanAttemptResource;
|
||||
use App\Domains\Ticket\Resources\Scanner\ScannerScanResultResource;
|
||||
use App\Domains\Ticket\Services\ScannerTicketService;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||
|
||||
class ScanAttemptController extends Controller
|
||||
@@ -22,4 +24,14 @@ class ScanAttemptController extends Controller
|
||||
$this->ticketService->attemptsBy($scanner, $request->validated())
|
||||
);
|
||||
}
|
||||
|
||||
public function show(Request $request, int $scanAttempt): ScannerScanResultResource
|
||||
{
|
||||
/** @var User $scanner */
|
||||
$scanner = $request->user();
|
||||
|
||||
return ScannerScanResultResource::make(
|
||||
$this->ticketService->scanAttemptDetail($scanner, $scanAttempt)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,6 +51,19 @@ class ScannerTicketService
|
||||
->withQueryString();
|
||||
}
|
||||
|
||||
public function scanAttemptDetail(User $scanner, int $scanAttemptId): ScanAttempt
|
||||
{
|
||||
$scanAttempt = ScanAttempt::query()
|
||||
->with('ticket')
|
||||
->where('tenant_code', $scanner->tenant_codigo)
|
||||
->where('scanner_user_id', $scanner->getKey())
|
||||
->findOrFail($scanAttemptId);
|
||||
|
||||
$scanAttempt->ticket?->loadMissing($this->relations());
|
||||
|
||||
return $scanAttempt;
|
||||
}
|
||||
|
||||
private function parseSearchDate(string $search): ?string
|
||||
{
|
||||
if (preg_match('/^(\d{4})-(\d{2})-(\d{2})$/', $search, $matches) === 1) {
|
||||
|
||||
@@ -7,6 +7,8 @@ use Illuminate\Support\Facades\Route;
|
||||
Route::middleware(['auth:sanctum', 'scanner.tenant'])
|
||||
->group(function (): void {
|
||||
Route::get('v1/scanner/attempts', ScanAttemptController::class);
|
||||
Route::get('v1/scanner/attempts/{scanAttempt}', [ScanAttemptController::class, 'show'])
|
||||
->whereNumber('scanAttempt');
|
||||
|
||||
Route::prefix('v1/scanner/tickets')->group(function (): void {
|
||||
Route::post('scan', [TicketController::class, 'scan']);
|
||||
|
||||
Reference in New Issue
Block a user