'unauthorized'])); } $user = unserialize($_SESSION['user']); // check method try { if ($_SERVER['REQUEST_METHOD'] === 'GET') { $data = $db->query( "WITH horarios AS ( SELECT * FROM horario_view WHERE (periodo_id, facultad_id) = (:periodo_id, COALESCE(:facultad_id, facultad_id)) ), fechas AS ( SELECT fechas_clase(h.horario_id) as registro_fecha_ideal, h.horario_id FROM horarios h ) SELECT estado_supervisor.*, usuario.*, registro.*, profesor.*, horarios.*, fechas.* FROM horarios JOIN fechas using (horario_id) JOIN horario_profesor using (horario_id) JOIN profesor using (profesor_id) LEFT JOIN registro USING (horario_id, registro_fecha_ideal, profesor_id) left join estado_supervisor using (estado_supervisor_id) LEFT JOIN USUARIO ON USUARIO.usuario_id = REGISTRO.supervisor_id ORDER BY fechas.registro_fecha_ideal DESC, horarios.horario_id, profesor_nombre", [ ':periodo_id' => $user->periodo_id, ':facultad_id' => $user->facultad['facultad_id'], ] ); $last_query = [ 'query' => $db->getLastQuery(), ]; echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); } else { http_response_code(405); echo json_encode(['error' => 'method not allowed']); exit; } } catch (PDOException $th) { http_response_code(500); echo json_encode([ 'error' => $th->getMessage(), 'query' => $db->getLastQuery(), ], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_PARTIAL_OUTPUT_ON_ERROR); exit; } catch (Exception $th) { http_response_code(500); echo json_encode([ 'error' => $th->getMessage(), ], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); exit; }