Merge pull request #332 from erqan/getlasthave-with-userlist

changes getlasthave method for any possible group implementation on clie...
This commit is contained in:
miguelfreitas 2015-05-03 09:52:20 -03:00
commit b7de00d35e
2 changed files with 14 additions and 5 deletions

View File

@ -1316,6 +1316,7 @@ Array RPCConvertValues(const std::string &strMethod, const std::vector<std::stri
if (strMethod == "newdirectmsg" && n > 4) ConvertTo<bool>(params[4]);
if (strMethod == "newrtmsg" && n > 1) ConvertTo<boost::int64_t>(params[1]);
if (strMethod == "newrtmsg" && n > 2) ConvertTo<Object>(params[2]);
if (strMethod == "getlasthave" && n > 1) ConvertTo<Array>(params[1]);
if (strMethod == "getposts" && n > 0) ConvertTo<boost::int64_t>(params[0]);
if (strMethod == "getposts" && n > 1) ConvertTo<Array>(params[1]);
if (strMethod == "getposts" && n > 2) ConvertTo<boost::int64_t>(params[2]);

View File

@ -2643,14 +2643,22 @@ Value getfollowing(const Array& params, bool fHelp)
Value getlasthave(const Array& params, bool fHelp)
{
if (fHelp || (params.size() != 1))
if (fHelp || params.size() < 1 || params.size() > 2)
throw runtime_error(
"getlasthave <username>\n"
"get last 'have' (higher post number) of each user user we follow");
string localUser = params[0].get_str();
"getlasthave <username> | <groupname> [user1,user2...]\n"
"get last 'have' (higher post number) of each user local user follows.\n"
"if a groupname with an array is given, only those users' last 'have' values will be returned.");
std::set<std::string> following;
string localUser = params[0].get_str();
if (params.size() > 1)
{
Array userlist = params[1].get_array();
for (unsigned int i = 0; i < userlist.size(); i++)
following.insert(userlist[i].get_str());
}
else
{
LOCK(cs_twister);
if( m_users.count(localUser) )