81 lines
2.7 KiB
PHP
81 lines
2.7 KiB
PHP
<?
|
|
/*
|
|
• idPeriodo: identificador del periodo a consultar (obligatorio, número entero)
|
|
• claveFacultad: clave de la facultad a consultar (opcional, cadena)
|
|
• claveCarrera: clave de la carrera a consultar (opcional, cadena)
|
|
• claveProfesor: clave del empleado a consultar (opcional, cadena)
|
|
• fecha: fecha de la clase (opcional, cadena en formato yyyy-MM-dd)
|
|
*/
|
|
$required_params = [
|
|
'idPeriodo'
|
|
];
|
|
|
|
$optional_params = [
|
|
'claveFacultad',
|
|
'claveCarrera',
|
|
'claveProfesor',
|
|
'fecha'
|
|
];
|
|
|
|
// Check if all required params are present in $_GET
|
|
$params = array_map('strtolower', $_GET); // Convert keys to lowercase for case-insensitive comparison
|
|
|
|
// Check for missing required parameters
|
|
$missing_params = array_diff($required_params, array_keys($params));
|
|
if (!empty($missing_params)) {
|
|
$missing_params_str = implode(', ', $missing_params);
|
|
die("Missing required parameter(s): $missing_params_str");
|
|
}
|
|
|
|
// Filter and retain only the required and optional parameters
|
|
$params = array_filter($params, function ($key) use ($required_params, $optional_params) {
|
|
return in_array($key, $required_params) || in_array($key, $optional_params);
|
|
}, ARRAY_FILTER_USE_KEY);
|
|
|
|
$curl = curl_init();
|
|
curl_setopt_array($curl, [
|
|
CURLOPT_URL => "https://portal.ulsa.edu.mx/servicios/AuditoriaAsistencialRest/AuditoriaAsistencialService.svc/auditoriaAsistencial/seleccionar",
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_ENCODING => "",
|
|
CURLOPT_MAXREDIRS => 10,
|
|
CURLOPT_TIMEOUT => 0,
|
|
CURLOPT_CUSTOMREQUEST => "POST",
|
|
CURLOPT_POSTFIELDS => json_encode($params),
|
|
CURLOPT_HTTPHEADER => [
|
|
"token: e12e2dde0e95a32e274328fd274e07d53f127630c211d838efffacd3cafc4f14edf3f3de6a649eb23f98edf6a1863a008f60e78a316d4dec996b79aeea161a0c",
|
|
"username: SGU_APSA_AUD_ASIST",
|
|
"Content-Type: application/json"
|
|
],
|
|
]);
|
|
|
|
$response = curl_exec($curl);
|
|
$err = curl_error($curl);
|
|
|
|
curl_close($curl);
|
|
|
|
if ($err)
|
|
die("cURL Error #:$err");
|
|
|
|
|
|
$selectedData = json_decode($response, true);
|
|
|
|
$rawInput = file_get_contents('php://input');
|
|
|
|
$input = json_decode($rawInput, true);
|
|
// check for {collect: []} in raw input
|
|
if (isset($input['collect']) && is_array($input['collect'])) {
|
|
$collect = $input['collect'];
|
|
$selectedData = array_map(function ($item) use ($collect) {
|
|
return array_intersect_key($item, array_flip($collect));
|
|
}, $selectedData);
|
|
// unique and distinct
|
|
$selectedData = array_unique($selectedData, SORT_REGULAR);
|
|
}
|
|
else {
|
|
// return invalid request error
|
|
die($rawInput);
|
|
}
|
|
|
|
// Output the selected data directly
|
|
header('Content-Type: application/json');
|
|
echo json_encode($selectedData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); |