4coder-non-source/test_data/lots_of_files/gjUser.cpp

82 lines
3.2 KiB
C++

///////////////////////////////////////////////////////////////////
//*-------------------------------------------------------------*//
//| Part of the Game Jolt API C++ Library (http://gamejolt.com) |//
//*-------------------------------------------------------------*//
//| Released under the zlib License |//
//| More information available in the readme file |//
//*-------------------------------------------------------------*//
///////////////////////////////////////////////////////////////////
#include "gjAPI.h"
// ****************************************************************
/* constructor */
gjUser::gjUser(const gjData& aUserData, gjAPI* pAPI)noexcept
: m_iID (atoi(SAFE_MAP_GET(aUserData, "id").c_str()))
, m_sName (SAFE_MAP_GET(aUserData, "username"))
, m_sType (SAFE_MAP_GET(aUserData, "type"))
, m_sAvatarURL (SAFE_MAP_GET(aUserData, "avatar_url"))
, m_sSignedUp (SAFE_MAP_GET(aUserData, "signed_up"))
, m_sLastLoggedIn (SAFE_MAP_GET(aUserData, "last_logged_in"))
, m_sStatus (SAFE_MAP_GET(aUserData, "status"))
, m_sDeveloperName (SAFE_MAP_GET(aUserData, "developer_name"))
, m_sDeveloperWebsite (SAFE_MAP_GET(aUserData, "developer_website"))
, m_sDeveloperDescription (SAFE_MAP_GET(aUserData, "developer_description"))
, m_pAPI (pAPI)
{
}
gjUser::gjUser(const gjUser& that)noexcept
: m_iID (that.m_iID)
, m_sName (that.m_sName)
, m_sType (that.m_sType)
, m_sAvatarURL (that.m_sAvatarURL)
, m_sSignedUp (that.m_sSignedUp)
, m_sLastLoggedIn (that.m_sLastLoggedIn)
, m_sStatus (that.m_sStatus)
, m_sDeveloperName (that.m_sDeveloperName)
, m_sDeveloperWebsite (that.m_sDeveloperWebsite)
, m_sDeveloperDescription (that.m_sDeveloperDescription)
, m_pAPI (that.m_pAPI)
{
}
// ****************************************************************
/* assignment operator */
gjUser& gjUser::operator = (const gjUser& that)noexcept
{
m_iID = that.m_iID;
m_sName = that.m_sName;
m_sType = that.m_sType;
m_sAvatarURL = that.m_sAvatarURL;
m_sSignedUp = that.m_sSignedUp;
m_sLastLoggedIn = that.m_sLastLoggedIn;
m_sStatus = that.m_sStatus;
m_sDeveloperName = that.m_sDeveloperName;
m_sDeveloperWebsite = that.m_sDeveloperWebsite;
m_sDeveloperDescription = that.m_sDeveloperDescription;
m_pAPI = that.m_pAPI;
return *this;
}
// ****************************************************************
/* callback for updating the data */
int gjUser::__UpdateDataCallback(const std::string& sData, void* pAdd, gjUserPtr* pOutput)
{
// parse output
gjDataList aaReturn;
if(m_pAPI->ParseRequestKeypair(sData, &aaReturn) != GJ_OK)
{
gjAPI::ErrorLogAdd("API Error: could not parse user");
return GJ_REQUEST_FAILED;
}
// copy new user over old user
gjUser NewUser(aaReturn[0], m_pAPI);
*this = NewUser;
if(pOutput) (*pOutput) = this;
return GJ_OK;
}