Files
CS-Classes/CS457/hw3/database.cpp
2025-06-17 14:42:22 -07:00

49 lines
2.0 KiB
C++

/**
* @file database.cpp
* @author Miguel Muniz
* @brief file for database.cpp contains the function definitions for the database class
* @version 3.0
* @date 2023-04-24
*/
#include "SQLManager.h"
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
void Database::CreateDB(string db_name){
string initalDirectory = program_path_init; //saves initial program path
if(fs::exists(initalDirectory) && fs::is_directory(db_name)){
cout << "!Failed to create database " << db_name << " because it already exists." << endl;
} else {
cout << "Database " << db_name << " created." << endl;
fs::create_directories(db_name);
program_path_init = initalDirectory; //resets program path to initial path
}
}
void Database::DropDB(string db_name){
string initalDirectory = program_path_init; //saves initial program path
if (fs::exists(program_path_init) && fs::is_directory(db_name)) {
try {
program_path_init /= db_name; //adds db_name to path
fs::remove_all(program_path_init);
std::cout << "Database " << db_name << " deleted." <<endl;
} catch (const std::filesystem::filesystem_error& e) { //catches error if folder is not empty
std::cerr << "Error deleting folder: " << e.what() << '\n';
}
} else {
cout << "!Failed to drop database " << db_name << " because it does not exist." << endl;
}
program_path_init = initalDirectory;//resets program path to initial path
}
void Database::UseDB(string db_name){
if (fs::exists(program_path_init) && fs::is_directory(db_name)) { //uses initial program path
program_path = program_path_init; //resets program path to initial path
program_path /= db_name; //adds db_name to path
cout << "Using Database " << db_name << endl;
} else {
cout << "!Failed to use database " << db_name << " because it does not exist." << endl;
}
}