blabla/UserCMD.cpp
Danny Jonker d426297b2a bla
2024-08-03 21:04:44 +02:00

68 lines
1.6 KiB
C++

#include "User.hpp"
#include "../User.hpp"
#include "../Connection.hpp"
#include "../IRC.hpp"
#include <string>
UserCMD::UserCMD() {}
UserCMD::~UserCMD() {}
bool UserCMD::validate(const User &user, const std::string &msg)
{
size_t pos;
size_t leng;
std::istringstream iss(msg);
std::string word;
leng = msg.length();
pos = msg.find(":") + 1;
this->realName = msg.substr(pos, leng - pos);
iss >> word; // should be USER
iss >> word; // should be the Nickname
this->nickName = word;
// perhaps we should check the real and username on length and illegal characters
return true;
}
bool UserCMD::validate(const Connection &conn, const std::string &msg)
{
size_t pos;
size_t leng;
std::istringstream iss(msg);
std::string word;
leng = msg.length();
pos = msg.find(":") + 1;
this->realName = msg.substr(pos, leng - pos);
iss >> word; // should be USER
iss >> word; // should be the Nickname
this->nickName = word;
return true;
// perhaps we should check the real and username on length and illegal characters
}
int UserCMD::run(User &user, IRC::t_send_f &send)
{
user->setUserName(this->userName);
user->setRealName(this->realName);
return (0);
}
int UserCMD::run(Connection &conn, IRC::t_send_f &send)
{
if (conn->getNickName()) // Nick was called before and we will create the user here
{
user = IRCManager::addUser(conn, this->userName, this->realName, conn->getNickName());
user->setUserName(this->userName);
user->setRealName(this->realName);
}
else // User was called before Nick and User will be created in Nick
{
user->setUserName(this->userName);
user->setRealName(this->realName);
}
return (0);
}