'unauthorized']); exit; } $user = unserialize($_SESSION['user']); try { if ($_SERVER['REQUEST_METHOD'] === 'PUT') { // check parameters $raw = file_get_contents('php://input'); $post_data = json_decode($raw, true); // if it's a list // step 1: get subrutas if (empty($post_data)) { http_response_code(400); echo json_encode(['error' => 'No hay clases pendientes']); exit; } $data = $db->querySingle( 'INSERT INTO registro (profesor_id, horario_id, registro_fecha_ideal, registro_justificada, justificador_id, registro_fecha_justificacion, justificacion) VALUES (:profesor_id, :horario_id, :registro_fecha_ideal, :registro_justificada, :justificador_id, NOW(), :justificacion) ON CONFLICT (profesor_id, horario_id, registro_fecha_ideal) DO UPDATE SET registro_justificada = :registro_justificada, justificador_id = :justificador_id, registro_fecha_justificacion = NOW(), justificacion = :justificacion RETURNING *', array( 'profesor_id' => $post_data['profesor_id'], 'horario_id' => $post_data['horario_id'], 'registro_fecha_ideal' => $post_data['registro_fecha_ideal'], 'registro_justificada' => $post_data['registro_justificada'], 'justificador_id' => $user->user['id'], 'justificacion' => empty($post_data['justificacion']) ? null : $post_data['justificacion'], ) ); $data_justificador = $db->querySingle( "SELECT justificador.usuario_nombre as justificador_nombre, justificador.usuario_clave as justificador_clave, facultad.facultad_nombre as justificador_facultad, rol.rol_titulo as justificador_rol FROM USUARIO JUSTIFICADOR JOIN ROL on ROL.rol_id = justificador.rol_id LEFT JOIN facultad on facultad.facultad_id = justificador.facultad_id where justificador.usuario_id = :justificador_id", array( 'justificador_id' => $user->user['id'], ) ); echo json_encode(array_merge($data, $data_justificador), 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(), 'post_data' => $post_data, ], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); exit; } catch (Exception $th) { http_response_code(500); echo json_encode([ 'error' => $th->getMessage(), ], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); exit; }