WIP - correción de la respuesta de consulta vehiculos
This commit is contained in:
parent
beeaf481a0
commit
c4935d5298
57
app/Http/Controllers/Repuve/DeviceController.php
Normal file
57
app/Http/Controllers/Repuve/DeviceController.php
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
<?php namespace App\Http\Controllers\Repuve;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Notsoweb\ApiResponse\Enums\ApiResponse;
|
||||||
|
use App\Models\Device;
|
||||||
|
|
||||||
|
class DeviceController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
try{
|
||||||
|
$query = Device::query('devices');
|
||||||
|
|
||||||
|
if (!$request->filled('serie') && !$request->filled('brand')){
|
||||||
|
return ApiResponse::BAD_REQUEST->response([
|
||||||
|
'message' => 'Debe proporcionar al menos uno de los siguientes parámetros: serie o marca.'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->filled('serie')){
|
||||||
|
$query->where('serie', 'LIKE', '%' . $request->input('serie') . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($request->filled('brand')){
|
||||||
|
$query->where('brand', 'LIKE', '%' . $request->input('brand') . '%');
|
||||||
|
}
|
||||||
|
|
||||||
|
$perPage = $request->input('per_page', 10);
|
||||||
|
$devices = $query->paginate($perPage);
|
||||||
|
|
||||||
|
return ApiResponse::OK->response([
|
||||||
|
'devices' => $devices->map(function ($devices){
|
||||||
|
return [
|
||||||
|
'id' => $devices->id,
|
||||||
|
'brand' => $devices->brand,
|
||||||
|
'serie' => $devices->serie,
|
||||||
|
'status' => $devices->status,
|
||||||
|
];
|
||||||
|
}),
|
||||||
|
'pagination' => [
|
||||||
|
'total' => $devices->total(),
|
||||||
|
'per_page' => $devices->perPage(),
|
||||||
|
'current_page' => $devices->currentPage(),
|
||||||
|
'last_page' => $devices->lastPage(),
|
||||||
|
'from' => $devices->firstItem(),
|
||||||
|
'to' => $devices->lastItem(),
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
} catch(\Exception $e){
|
||||||
|
return ApiResponse::INTERNAL_ERROR->response([
|
||||||
|
'message' => 'Error al obtener la lista de dispositivos.',
|
||||||
|
'error' => $e->getMessage(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -369,6 +369,7 @@ public function searchRecord(Request $request)
|
|||||||
return [
|
return [
|
||||||
'id' => $record->id,
|
'id' => $record->id,
|
||||||
'folio' => $record->folio,
|
'folio' => $record->folio,
|
||||||
|
'created_at' => $record->created_at->toDateTimeString(),
|
||||||
'vehicle' => [
|
'vehicle' => [
|
||||||
'id' => $record->vehicle->id,
|
'id' => $record->vehicle->id,
|
||||||
'placa' => $record->vehicle->placa,
|
'placa' => $record->vehicle->placa,
|
||||||
@ -383,6 +384,11 @@ public function searchRecord(Request $request)
|
|||||||
'full_name' => $record->vehicle->owner->full_name,
|
'full_name' => $record->vehicle->owner->full_name,
|
||||||
'rfc' => $record->vehicle->owner->rfc,
|
'rfc' => $record->vehicle->owner->rfc,
|
||||||
],
|
],
|
||||||
|
'tag' =>[
|
||||||
|
'id' => $record->vehicle->tag ? $record->vehicle->tag->id : null,
|
||||||
|
'folio' => $record->vehicle->tag ? $record->vehicle->tag->folio : null,
|
||||||
|
'status' => $record->vehicle->tag ? $record->vehicle->tag->status : null,
|
||||||
|
],
|
||||||
'files' => $record->files->map(function ($file) {
|
'files' => $record->files->map(function ($file) {
|
||||||
return [
|
return [
|
||||||
'id' => $file->id,
|
'id' => $file->id,
|
||||||
|
|||||||
@ -17,7 +17,7 @@
|
|||||||
class ModuleController extends Controller
|
class ModuleController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Listar módulos existentes con filtros y paginación
|
* Listar módulos existentes
|
||||||
*/
|
*/
|
||||||
public function index(Request $request)
|
public function index(Request $request)
|
||||||
{
|
{
|
||||||
@ -87,10 +87,6 @@ public function index(Request $request)
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
Log::error('Error al listar módulos: ' . $e->getMessage(), [
|
|
||||||
'trace' => $e->getTraceAsString()
|
|
||||||
]);
|
|
||||||
|
|
||||||
return ApiResponse::INTERNAL_ERROR->response([
|
return ApiResponse::INTERNAL_ERROR->response([
|
||||||
'message' => 'Error al listar módulos',
|
'message' => 'Error al listar módulos',
|
||||||
'error' => $e->getMessage(),
|
'error' => $e->getMessage(),
|
||||||
|
|||||||
32
app/Http/Requests/Repuve/DeviceStoreRequest.php
Normal file
32
app/Http/Requests/Repuve/DeviceStoreRequest.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests\Repuve;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
class ModuleStoreRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize(): bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'brand' => 'required|string|max:255',
|
||||||
|
'serie' => 'required|string|unique:devices,serie|max:255',
|
||||||
|
'module_id' => 'required|exists:modules,id',
|
||||||
|
'status' => 'nullable|boolean',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function messages(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'brand.required' => 'La marca del dispositivo es requerida',
|
||||||
|
'serie.required' => 'El número de serie del dispositivo es requerido',
|
||||||
|
'module_id.required' => 'El módulo asignado es requerido',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
32
app/Http/Requests/Repuve/DeviceUpdateRequest.php
Normal file
32
app/Http/Requests/Repuve/DeviceUpdateRequest.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Requests\Repuve;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\FormRequest;
|
||||||
|
|
||||||
|
class ModuleStoreRequest extends FormRequest
|
||||||
|
{
|
||||||
|
public function authorize(): bool
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rules(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'brand' => 'sometimes|string|max:255',
|
||||||
|
'serie' => 'sometimes|string|unique:devices,serie,{id}|max:255',
|
||||||
|
'module_id' => 'sometimes|exists:modules,id',
|
||||||
|
'status' => 'nullable|boolean',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function messages(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'brand.required' => 'La marca del dispositivo es requerida',
|
||||||
|
'serie.required' => 'El número de serie del dispositivo es requerido',
|
||||||
|
'module_id.required' => 'El módulo asignado es requerido',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -24,7 +24,7 @@ protected function casts(): array
|
|||||||
|
|
||||||
public function modules()
|
public function modules()
|
||||||
{
|
{
|
||||||
return $this->belongsToMany(Module::class, 'device_module')
|
return $this->belongsTo(Module::class, 'device_module')
|
||||||
->withPivot('status')
|
->withPivot('status')
|
||||||
->withTimestamps();
|
->withTimestamps();
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@ public function deviceModules()
|
|||||||
|
|
||||||
public function activeModules()
|
public function activeModules()
|
||||||
{
|
{
|
||||||
return $this->belongsToMany(Module::class, 'device_module')
|
return $this->belongsTo(Module::class, 'device_module')
|
||||||
->wherePivot('status', true)
|
->wherePivot('status', true)
|
||||||
->withPivot('status')
|
->withPivot('status')
|
||||||
->withTimestamps();
|
->withTimestamps();
|
||||||
|
|||||||
@ -32,7 +32,7 @@ protected function casts(): array
|
|||||||
|
|
||||||
public function devices()
|
public function devices()
|
||||||
{
|
{
|
||||||
return $this->belongsToMany(Device::class, 'device_module')
|
return $this->belongsTo(Device::class, 'device_module')
|
||||||
->withPivot('status')
|
->withPivot('status')
|
||||||
->withTimestamps();
|
->withTimestamps();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,7 +39,7 @@ private function generateFolio(): string
|
|||||||
{
|
{
|
||||||
$year = fake()->numberBetween(2020, 2025);
|
$year = fake()->numberBetween(2020, 2025);
|
||||||
$series = strtoupper(fake()->bothify('??'));
|
$series = strtoupper(fake()->bothify('??'));
|
||||||
$number = fake()->unique()->numerify('########');
|
$number = fake()->unique()->numerify('####################');
|
||||||
|
|
||||||
return 'TAG-' . $year . '-' . $series . '-' . $number;
|
return 'TAG-' . $year . '-' . $series . '-' . $number;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@
|
|||||||
use App\Http\Controllers\Repuve\InscriptionController;
|
use App\Http\Controllers\Repuve\InscriptionController;
|
||||||
use App\Http\Controllers\Repuve\UpdateController;
|
use App\Http\Controllers\Repuve\UpdateController;
|
||||||
use App\Http\Controllers\Admin\RoleController;
|
use App\Http\Controllers\Admin\RoleController;
|
||||||
|
use App\Http\Controllers\Repuve\DeviceController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rutas del núcleo de la aplicación.
|
* Rutas del núcleo de la aplicación.
|
||||||
@ -51,6 +52,9 @@
|
|||||||
|
|
||||||
// Rutas de roles, mostrar roles para asignar a usuarios
|
// Rutas de roles, mostrar roles para asignar a usuarios
|
||||||
Route::get('/admin/roles-all', [RoleController::class, 'listAll']);
|
Route::get('/admin/roles-all', [RoleController::class, 'listAll']);
|
||||||
|
|
||||||
|
//Rutas de dispositivos
|
||||||
|
Route::get('/devices', [DeviceController::class, 'index']);
|
||||||
});
|
});
|
||||||
|
|
||||||
/** Rutas públicas */
|
/** Rutas públicas */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user