diff options
| -rw-r--r-- | gentoobrowse-api/api/users.ice | 3 | ||||
| -rw-r--r-- | gentoobrowse-api/service/sql/users/tracked.sql | 4 | ||||
| -rw-r--r-- | gentoobrowse-api/service/usersimpl.cpp | 7 | ||||
| -rw-r--r-- | gentoobrowse-api/service/usersimpl.h | 1 | ||||
| -rw-r--r-- | gentoobrowse-api/unittests/testUsers.cpp | 7 | 
5 files changed, 22 insertions, 0 deletions
| diff --git a/gentoobrowse-api/api/users.ice b/gentoobrowse-api/api/users.ice index d0c37f7..16fa7e2 100644 --- a/gentoobrowse-api/api/users.ice +++ b/gentoobrowse-api/api/users.ice @@ -5,6 +5,8 @@  #include <sqlExceptions.ice>  module Gentoo { +	sequence<int> PackageIds; +  	interface Users {  		User authenticate(string username, string password) throws Slicer::NoRowsReturned;  		User verify(string username, string verifyguid) throws Slicer::NoRowsReturned; @@ -16,6 +18,7 @@ module Gentoo {  		void track(int userId, int packageId);  		void untrack(int userId, int packageId); +		PackageIds tracked(int userId);  	};  }; diff --git a/gentoobrowse-api/service/sql/users/tracked.sql b/gentoobrowse-api/service/sql/users/tracked.sql new file mode 100644 index 0000000..7bf2a8d --- /dev/null +++ b/gentoobrowse-api/service/sql/users/tracked.sql @@ -0,0 +1,4 @@ +SELECT packageid +FROM gentoobrowse.user_packages +WHERE userid = ? +ORDER BY packageid diff --git a/gentoobrowse-api/service/usersimpl.cpp b/gentoobrowse-api/service/usersimpl.cpp index 6aee42d..67a1bd1 100644 --- a/gentoobrowse-api/service/usersimpl.cpp +++ b/gentoobrowse-api/service/usersimpl.cpp @@ -8,6 +8,7 @@  #include <sql/users/safeDelete.sql.h>  #include <sql/users/track.sql.h>  #include <sql/users/untrack.sql.h> +#include <sql/users/tracked.sql.h>  namespace Gentoo {  namespace Service { @@ -75,6 +76,12 @@ Users::untrack(Ice::Int userId, Ice::Int packageId, const Ice::Current &)  	untrack->bindParamI(1, packageId);  	untrack->execute();  } + +Gentoo::PackageIds +Users::tracked(Ice::Int userId, const Ice::Current &) +{ +	return fetchCache<Gentoo::PackageIds>(sql::users::tracked, 10, userId); +}  }  } diff --git a/gentoobrowse-api/service/usersimpl.h b/gentoobrowse-api/service/usersimpl.h index f97e2ad..ae342a9 100644 --- a/gentoobrowse-api/service/usersimpl.h +++ b/gentoobrowse-api/service/usersimpl.h @@ -21,6 +21,7 @@ class DLL_PUBLIC Users : public Gentoo::Users, IceTray::AbstractCachingDatabaseC  		void track(Ice::Int, Ice::Int, const Ice::Current &) override;  		void untrack(Ice::Int, Ice::Int, const Ice::Current &) override; +		Gentoo::PackageIds tracked(Ice::Int, const Ice::Current &) override;  };  }  } diff --git a/gentoobrowse-api/unittests/testUsers.cpp b/gentoobrowse-api/unittests/testUsers.cpp index e4c1ac4..a4567f3 100644 --- a/gentoobrowse-api/unittests/testUsers.cpp +++ b/gentoobrowse-api/unittests/testUsers.cpp @@ -95,6 +95,13 @@ BOOST_AUTO_TEST_CASE( track )  	u->track(1, 44473);  } +BOOST_AUTO_TEST_CASE( tracked ) +{ +	auto ids = u->tracked(1); +	BOOST_REQUIRE_EQUAL(4, ids.size()); +	BOOST_REQUIRE_EQUAL(44473, ids.front()); +} +  BOOST_AUTO_TEST_CASE( untrack )  {  	u->untrack(1, 44473); | 
