2025-08-20 09:49:15 -06:00

66 lines
2.2 KiB
PHP

<?php namespace App\Http\Controllers\Dashboard;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class AtencionController extends BaseController
{
public function Atencion(Request $request)
{
$query = $request->only(['start', 'end', 'type', 'action']);
$input = array_merge(['action' => 'index', 'type' => 'api'], $query);
$startDate = $input['start'] ?? date('Y-01-01');
$endDate = $input['end'] ?? date('Y-12-31');
$baseParams = [
'start_date' => $startDate,
'end_date' => $endDate,
'type' => $input['type'] ?? 'api',
'action' => $input['action'] ?? 'index',
];
$baseUrl = 'https://apoyos.comalcalco.gob.mx/beneficiaries/stats-by-date-range';
$countsUrl = 'https://apoyos.comalcalco.gob.mx/beneficiaries/counts-by-date';
try{
$response = Http::get($baseUrl, $baseParams);
if(!$response->successful()){
return response()->json(['error' => 'Error del servicio'], $response->status());
}
$mainData = $response->json();
$countsAc = [];
try{
$countsResp = Http::get($countsUrl, [
'start_date' => $startDate,
'end_date' => $endDate,
]);
if($countsResp->successful()){
$countsAc = $countsResp->json();
} else {
Log::error('Error al obtener los conteos de atención', ['status' => $countsResp->status()]);
}
}catch (\Exception $e) {
Log::error('Error al obtener los conteos de atención', ['exception' => $e->getMessage()]);
}
$combinedData = array_merge(
is_array($mainData) ? $mainData : [],
[
'counts' => $countsAc,
]
);
return response()->json($combinedData, 200)
->header('Content-Type', 'application/json');
}catch (\Exception $e) {
Log::error('Error en la consulta de atención', ['exception' => $e->getMessage()]);
return response()->json(['error' => 'Error en la consulta de atención'], 500);
}
}
}