carreras.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?
  2. $ruta = "../../";
  3. require_once "$ruta/include/bd_pdo.php";
  4. header('Content-Type: application/json');
  5. global $db;
  6. // json data from service\periodos.v1.php (input)
  7. $data = json_decode(file_get_contents('php://input'), true);
  8. // check if the input is empty
  9. if (is_response_empty($data)) {
  10. echo json_encode([
  11. 'status' => 'error',
  12. 'message' => 'No se recibieron datos',
  13. 'data' => $data
  14. ]);
  15. exit;
  16. }
  17. // check if data is array
  18. if (!is_array($data)) {
  19. echo json_encode([
  20. 'status' => 'error',
  21. 'message' => 'La información recibida no es válida',
  22. 'data' => $data
  23. ]);
  24. exit;
  25. }
  26. /**
  27. * [{
  28. * carrera_nombre
  29. * carrera_clave
  30. * id_nivel
  31. * },]
  32. */
  33. // check for this schema
  34. array_walk($data, function ($item) {
  35. if (!isset($item['ClaveCarrera']) || !isset($item['NombreCarrera']) || !isset($item['IdNivel'])) {
  36. echo json_encode([
  37. 'status' => 'error',
  38. 'message' => 'Los datos recibidos no son validos',
  39. 'data' => $item
  40. ]);
  41. exit;
  42. }
  43. });
  44. array_walk($data, function ($item) use ($db) {
  45. if ($db->where('carrera_nombre', "%{$item['NombreCarrera']}", 'ILIKE')->has('carrera'))
  46. $db
  47. ->where('carrera_nombre', "%{$item['NombreCarrera']}", 'ILIKE')
  48. ->update('carrera', [
  49. 'carrera_nombre' => $item['NombreCarrera'],
  50. 'id_referencia' => $item['ClaveCarrera'],
  51. ]);
  52. else {
  53. try {
  54. $db->insert('carrera', [
  55. 'carrera_nombre' => $item['NombreCarrera'],
  56. 'id_referencia' => $item['ClaveCarrera'],
  57. 'nivel_id' => $item['IdNivel'],
  58. ]);
  59. } catch (PDOException $th) {
  60. echo json_encode([
  61. 'success' => false,
  62. 'message' => $th->getMessage(),
  63. 'last_query' => $db->getLastQuery(),
  64. ]);
  65. exit;
  66. }
  67. }
  68. });