horarios.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?
  2. /*
  3. • idPeriodo: identificador del periodo a consultar (obligatorio, número entero)
  4. • claveFacultad: clave de la facultad a consultar (opcional, cadena)
  5. • claveCarrera: clave de la carrera a consultar (opcional, cadena)
  6. • claveProfesor: clave del empleado a consultar (opcional, cadena)
  7. • fecha: fecha de la clase (opcional, cadena en formato yyyy-MM-dd)
  8. */
  9. $required_params = [
  10. 'idPeriodo'
  11. ];
  12. $optional_params = [
  13. 'claveFacultad',
  14. 'claveCarrera',
  15. 'claveProfesor',
  16. 'fecha'
  17. ];
  18. // Check if all required params are present in $_GET
  19. $params = array_map('strtolower', $_GET); // Convert keys to lowercase for case-insensitive comparison
  20. // Check for missing required parameters
  21. $missing_params = array_diff($required_params, array_keys($params));
  22. if (!empty($missing_params)) {
  23. $missing_params_str = implode(', ', $missing_params);
  24. die("Missing required parameter(s): $missing_params_str");
  25. }
  26. // Filter and retain only the required and optional parameters
  27. $params = array_filter($params, function ($key) use ($required_params, $optional_params) {
  28. return in_array($key, $required_params) || in_array($key, $optional_params);
  29. }, ARRAY_FILTER_USE_KEY);
  30. $curl = curl_init();
  31. curl_setopt_array($curl, [
  32. CURLOPT_URL => "https://portal.ulsa.edu.mx/servicios/AuditoriaAsistencialRest/AuditoriaAsistencialService.svc/auditoriaAsistencial/seleccionar",
  33. CURLOPT_RETURNTRANSFER => true,
  34. CURLOPT_ENCODING => "",
  35. CURLOPT_MAXREDIRS => 10,
  36. CURLOPT_TIMEOUT => 0,
  37. CURLOPT_CUSTOMREQUEST => "POST",
  38. CURLOPT_POSTFIELDS => json_encode($params),
  39. CURLOPT_HTTPHEADER => [
  40. "token: 64293fb86c06e45331ab9963822762f77b9c403ca949adcc31286d550e902fff202e4c69d1574b2082ecf0b3a28b6cfd4d88b3a7d2c2ab7d329666b9a527fb1b",
  41. "username: SGU_APSA_AUD_ASIST",
  42. "Content-Type: application/json"
  43. ],
  44. ]);
  45. $response = curl_exec($curl);
  46. $err = curl_error($curl);
  47. curl_close($curl);
  48. if ($err)
  49. die("cURL Error #:$err");
  50. $selectedData = json_decode($response, true);
  51. $rawInput = file_get_contents('php://input');
  52. $input = json_decode($rawInput, true);
  53. // check for {collect: []} in raw input
  54. if (isset($input['collect']) && is_array($input['collect'])) {
  55. $collect = $input['collect'];
  56. $selectedData = array_map(function ($item) use ($collect) {
  57. return array_intersect_key($item, array_flip($collect));
  58. }, $selectedData);
  59. // unique and distinct
  60. $selectedData = array_unique($selectedData, SORT_REGULAR);
  61. }
  62. else {
  63. // return invalid request error
  64. die($rawInput);
  65. }
  66. // Output the selected data directly
  67. header('Content-Type: application/json');
  68. echo json_encode($selectedData, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);