#include "UnassignCommand.h" #include "Error.h" #include "Manager.h" using util::Manager; using err::Error; namespace commands { UnassignCommand::UnassignCommand() : SubCommand("unassign", 100, true) { } void UnassignCommand::run(stringstream& args) { Manager& mgr = Manager::get_instance(); int user_id, task_id; args >> user_id >> task_id; if (!args) throw Error(102, "Ein Parameter eines Befehls konnte nicht gelesen werden"); const User* u = mgr.get_user(user_id); if (!u) throw Error(401, "Eine solche BenutzerIn existiert nicht."); const Task* t = mgr.get_task(task_id); if (!t) throw Error(401, "Eine solche Zuordnung existiert nicht."); if (!mgr.assignment_exists(user_id, task_id)) throw Error(302, "Eine solche Zuordnung existiert bereits."); Assignment as = {user_id, task_id}; mgr.del_assignment(as); mgr.save(); } } // commands