#include "User.h" #include "Error.h" #include "Manager.h" using util::Manager; using err::Error; namespace models { User::User(const int& id, const string& name, const string& surname): id(id), name(name), surname(surname) {} User::User(): id(0), name(""), surname("") {} ostream& User::write(ostream& stream) { stream << *this; return stream; } int User::get_id() const { return this->id; } string User::get_name() const { return this->name; } string User::get_surname() const { return this->surname; } AddUser::AddUser(): User() {} AddUser::AddUser(User& u): User(u) {} ostream& operator<<(ostream& os, const User& u) { os << u.get_id() << " " << u.get_name() << " " << u.get_surname() << "\n"; return os; } istream& operator>>(istream& is, User& u) { int id; is >> id; if (!is) throw Error(602, "Datei hat ein unbekanntes Format."); string name, surname; is >> name >> surname; if (!is) throw Error(602, "Datei hat ein unbekanntes Format."); u = {id, name, surname}; return is; } ostream& operator<<(ostream& os, const AddUser& u) { os << u.get_name() << " " << u.get_surname() << "\n"; return os; } istream& operator>>(istream& is, AddUser& u) { Manager* mgr = Manager::get_instance(); int id = mgr->get_user_id(); string name, surname; is >> name >> surname; if (!is) throw Error(602, "Could not read user name and surname"); User ut = {id, name, surname}; u = {ut}; return is; } }