From 344a71b072851127113658f929e9e0f7f3a23ed3 Mon Sep 17 00:00:00 2001 From: Felix Kauselmann <2039670+selmf@users.noreply.github.com> Date: Sun, 27 Nov 2016 16:18:09 +0100 Subject: [PATCH] Add checks for directories and library names --- .../console_ui_library_creator.cpp | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/YACReaderLibraryServer/console_ui_library_creator.cpp b/YACReaderLibraryServer/console_ui_library_creator.cpp index aa133c6f..65c88f15 100644 --- a/YACReaderLibraryServer/console_ui_library_creator.cpp +++ b/YACReaderLibraryServer/console_ui_library_creator.cpp @@ -18,7 +18,21 @@ void ConsoleUILibraryCreator::createLibrary(const QString & name, const QString LibraryCreator * libraryCreator = new LibraryCreator(); QDir pathDir(path); + if (!pathDir.exists()) + { + manageCreatingError(QString("Directory not found.") ); + return; + } + QString cleanPath = QDir::cleanPath(pathDir.absolutePath()); + + YACReaderLibraries yacreaderLibraries; + yacreaderLibraries.load(); + if (yacreaderLibraries.getNames().contains(name)) + { + std::cout << "A Library named \"" << name.toUtf8().constData() << "\" already exists in database." << std::endl; + return; + } libraryCreator->createLibrary(cleanPath,QDir::cleanPath(pathDir.absolutePath()+"/.yacreaderlibrary")); @@ -33,9 +47,6 @@ void ConsoleUILibraryCreator::createLibrary(const QString & name, const QString libraryCreator->start(); eventLoop.exec(); - //TODO, at some point some checking is needed for avoiding duplicated libraries - YACReaderLibraries yacreaderLibraries; - yacreaderLibraries.load(); yacreaderLibraries.addLibrary(name, cleanPath); yacreaderLibraries.save(); } @@ -46,6 +57,11 @@ void ConsoleUILibraryCreator::updateLibrary(const QString & path) LibraryCreator * libraryCreator = new LibraryCreator(); QDir pathDir(path); + if (!pathDir.exists()) + { + manageCreatingError(QString("Directory not found.") ); + return; + } QString cleanPath = QDir::cleanPath(pathDir.absolutePath()); libraryCreator->updateLibrary(cleanPath,QDir::cleanPath(pathDir.absolutePath()+"/.yacreaderlibrary")); @@ -65,11 +81,26 @@ void ConsoleUILibraryCreator::updateLibrary(const QString & path) void ConsoleUILibraryCreator::addExistingLibrary(const QString & name, const QString & path) { QDir pathDir(path); + if (!pathDir.exists()) + { + manageCreatingError(QString("Directory not found.")); + return; + } QString cleanPath = QDir::cleanPath(pathDir.absolutePath()); + + if (!QDir(cleanPath + "/.yacreaderlibrary").exists()) + { + manageCreatingError(QString("No library database found in directory.")); + return; + } - //TODO add error handling YACReaderLibraries yacreaderLibraries; yacreaderLibraries.load(); + if (yacreaderLibraries.getNames().contains(name)) + { + std::cout << "A Library named \"" << name.toUtf8().constData() << "\" already exists in the database." << std::endl; + return; + } yacreaderLibraries.addLibrary(name, cleanPath); yacreaderLibraries.save(); @@ -81,6 +112,11 @@ void ConsoleUILibraryCreator::removeLibrary(const QString & name) //TODO add error handling YACReaderLibraries yacreaderLibraries; yacreaderLibraries.load(); + if (!yacreaderLibraries.getNames().contains(name)) + { + std::cout << "No Library named \"" << name.toUtf8().constData() << "\" in database." << std::endl; + return; + } yacreaderLibraries.remove(name); yacreaderLibraries.save();