66 lines
2.2 KiB
PHP
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);
|
|
}
|
|
}
|
|
}
|