diff --git a/shell.nix b/shell.nix index a9f1c48..c327d8e 100644 --- a/shell.nix +++ b/shell.nix @@ -3,8 +3,7 @@ with pkgs; mkShell { - buildInputs = - [ php74 php74Extensions.pdo_mysql php74Packages.composer mysql57 ]; + buildInputs = [ php74 php74Extensions.pdo_mysql mysql57 ]; shellHook = '' pkill mysql @@ -15,5 +14,7 @@ mkShell { sleep 1 mysql --socket="$(pwd)/.mysql/mysql.sock" -u root < $(pwd)/database/db.sql + + alias mysql='mysql --socket="$(pwd)/.mysql/mysql.sock" -u root' ''; } diff --git a/src/database.php b/src/database.php index aa0b912..6aa6240 100644 --- a/src/database.php +++ b/src/database.php @@ -1,13 +1,95 @@ fetch()){ + echo $row . "\n"; + } +} + +function listRows($pdo, $table) { + $query = "SELECT * FROM ?"; + $result = $pdo->prepare($query)->execute([$table]); + displayResults($query); +} + +function findRows($pdo, str $table, str $attr, str $param) { + $query = "SELECT * FROM ? WHERE ? = ?"; + $result = $pdo->prepare($query)->execute([$table, $attr, $param]); + displayResults($query); +} + +function createPatient($pdo, $data) { + $query = "INSERT INTO paciente (nombre, apellido, fecha_de_nacimiento, documento_identificativo, tipo_documento, direccion, localidad, provincia, pais) VALUES (? ? ? ? ? ? ? ? ?)"; + $pdo->prepare($query)->execute([$data["nombre"], $data["apellido"], $data["fecha_de_nacimiento"], $data["documento_identificativo"], $data["tipo_documento"], $data["direccion"], $data["localidad"], $data["provincia"], $data["pais"]]); + return "Paciente creado con éxito"; +} + +function editPatient($pdo, str $attr, str $param, str $id) { + $query = "UPDATE paciente SET ? = ? WHERE documento_identificativo = ?"; + $pdo->prepare($query)->execute([$attr, $param, $id]); + return "Paciente modificado con éxito"; +} + +function deletePatient($pdo, str $id) { + $check = "SELECT * FROM informes where paciente = ?"; + $result = $pdo->prepare($check)->execute([$id]); + if($result->columnCount() == 0){ + $statement = "DELETE FROM paciente where document_identificado = ?"; + $pdo->prepare($statement)->execute([$id]); + return "El paciente se ha eliminado correctamente"; + } + return "No se puede eliminar el paciente dado que tiene citas"; +} + +function createHoliday($pdo, $data) { + $query = "INSERT INTO festivo (fecha_festivo, tipo_festivo, medico) VALUES (? ? ?)"; + $pdo->prepare($query)->execute([$data["fecha_festivo"], $data["tipo_festivo"], $data["medico"]]); + return "Festivo creado con éxito"; +} + +function editHoliday($pdo, $attr, $param, $id) { + $query = "UPDATE festivo SET ? = ? WHERE id = ?"; + $pdo->prepare($query)->execute([$attr, $param, $id]); + return "Festivo modificado con éxito"; +} + +function deleteHoliday($pdo, str $id) { + $statement = "DELETE FROM festivo where id = ?"; + $pdo->prepare($statement)->execute([$id]); + return "Festivo borrado con éxito"; +} + +function createUser($pdo, $data) { + $query = "INSERT INTO usuario (nombre, usuario, contraseña, rol, correo) VALUES (? ? ? ? ?)"; + $pdo->prepare($query)->execute([$data["nombre"], $data["usuario"], $data["contraseña"], $data["rol"], $data[$correo]]); + return "Usuario creado con éxito"; +} + +function editUser($pdo, $attr, $param, $id) { + $query = "UPDATE usuario SET ? = ? WHERE usuario = ?"; + $pdo->prepare($query)->execute([$attr, $param, $id]); + return "Usuario modificado con éxito"; +} + +function deactivateUser($pdo, str $id) { + editUser($pdo, "fecha_baja", "CURRENT_TIMESTAMP", $id); + return "Usuario desactivado con éxito"; +} + +function listAppointments($pdo, str $doctor) { + findRows($pdo, "cita", "medico", $doctor); +} + +?>