'unauthorized'])); } $user = unserialize($_SESSION['user']); // check method try { if ($_SERVER['REQUEST_METHOD'] === 'GET') { /* $db->query(<<getConnection(), "REFRESH MATERIALIZED VIEW CONCURRENTLY PUBLIC.AUDITORIA_MAT"); $baseDate = $_GET['fecha'] ?? $_GET['fecha_fin'] ?? null; $params = [ // ':periodo_id' => $_GET['periodo_id'] > 0 ? $user->periodo_id : null, ':facultad_id' => $user->facultad['facultad_id'], ':fecha_inicio' => $_GET['fecha'] ?? $_GET['fecha_inicio'] ?? date('Y-m-d'), ':fecha_fin' => $baseDate ? date('Y-m-d H:i:s', strtotime("$baseDate +24 hours")) : date('Y-m-d H:i:s'), 'usuario_id' => $user->user['id'], ]; $data = $db->query( "WITH AUDITORIA_DATA AS ( SELECT * FROM PUBLIC.AUDITORIA_MAT WHERE FACULTAD_ID = COALESCE(:facultad_id, FACULTAD_ID) AND REGISTRO_FECHA_IDEAL + HORARIO_HORA between :fecha_inicio AND :fecha_fin ), INSERTION AS ( INSERT INTO last_auditoria VALUES (:usuario_id , COALESCE(( SELECT jsonb_agg(AUDITORIA_DATA) FROM AUDITORIA_DATA ), '[]'::JSONB)) ON CONFLICT (usuario_id) DO UPDATE SET auditoria = EXCLUDED.auditoria ) SELECT registro_id, registro_fecha_ideal, horario_id, profesor_id, salon, profesor_clave, profesor_nombre, horario_hora, horario_fin, registro_fecha, color, estado_color, estado_icon, usuario_nombre, registro_fecha_supervisor, comentario, registro_justificada, reposicion_id FROM AUDITORIA_DATA", $params ); // Print the JSON file echo json_encode($data); } 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; }