Add validation for serial numbers in readFiles method and return error response for invalid entries
This commit is contained in:
@@ -218,6 +218,7 @@ class SapFileController extends Controller
|
|||||||
|
|
||||||
$serialNumbers = [];
|
$serialNumbers = [];
|
||||||
$remainingRow = null;
|
$remainingRow = null;
|
||||||
|
$invalidSerials = [];
|
||||||
|
|
||||||
foreach ($lines as $line) {
|
foreach ($lines as $line) {
|
||||||
$values = str_getcsv($line);
|
$values = str_getcsv($line);
|
||||||
@@ -231,16 +232,30 @@ class SapFileController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Collect serial number
|
// Collect serial number
|
||||||
$serialNumbers[] = $values[5] ?? null;
|
// $serialNumbers[] = $values[5] ?? null;
|
||||||
|
$serial = $values[5] ?? null;
|
||||||
|
$serialNumbers[] = $serial;
|
||||||
|
|
||||||
|
if ($serial == null || strlen($serial) < 13) {
|
||||||
|
$invalidSerials[] = $serialNumbers;
|
||||||
|
}
|
||||||
|
|
||||||
// Store remaining row only once
|
// Store remaining row only once
|
||||||
if ($remainingRow === null) {
|
if ($remainingRow == null) {
|
||||||
$remainingRow = $values;
|
$remainingRow = $values;
|
||||||
unset($remainingRow[5]); // remove serial number
|
unset($remainingRow[5]); // remove serial number
|
||||||
$remainingRow = array_values($remainingRow); // reindex
|
$remainingRow = array_values($remainingRow); // reindex
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($invalidSerials)) {
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'ERROR',
|
||||||
|
'status_description' => 'Some serial numbers are invalid (less than 13 characters)',
|
||||||
|
'invalid_serials' => $invalidSerials
|
||||||
|
], 400);
|
||||||
|
}
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => 'SUCCESS',
|
'status' => 'SUCCESS',
|
||||||
'serial_numbers' => $serialNumbers,
|
'serial_numbers' => $serialNumbers,
|
||||||
|
|||||||
Reference in New Issue
Block a user