forked from University/epr24pr5-ojanssen2
35 lines
1 KiB
C++
35 lines
1 KiB
C++
#include "UnassignCommand.h"
|
|
#include "Error.h"
|
|
#include "Manager.h"
|
|
|
|
using util::Manager;
|
|
using err::Error;
|
|
|
|
namespace commands
|
|
{
|
|
UnassignCommand::UnassignCommand() : SubCommand("unassign", 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(301, "Eine solche Zuordnung existiert nicht.");
|
|
if (!mgr->assignment_exists(user_id, task_id))
|
|
|
|
throw Error(301, "Eine solche Zuordnung existiert nicht.");
|
|
Assignment as = {user_id, task_id};
|
|
//TODO:: DELETES THE WRONG THINGS
|
|
mgr->del_assignment(as);
|
|
mgr->save();
|
|
}
|
|
} // commands
|