[DLN] implement list_event_groups(sport_id)

This commit is contained in:
SynaptiCAD User 2017-03-19 20:39:05 -04:00
parent db6b312784
commit 20a64be400
3 changed files with 25 additions and 3 deletions

View file

@ -97,6 +97,7 @@ class database_api_impl : public std::enable_shared_from_this<database_api_impl>
// Peerplays
vector<sport_object> list_sports() const;
vector<event_group_object> list_event_groups(sport_id_type sport_id) const;
// Markets / feeds
vector<limit_order_object> get_limit_orders(asset_id_type a, asset_id_type b, uint32_t limit)const;
@ -891,15 +892,25 @@ vector<sport_object> database_api::list_sports() const
vector<sport_object> database_api_impl::list_sports() const
{
const auto& sport_index = _db.get_index_type<sport_object_index>().indices().get<by_id>();
const auto& sport_object_idx = _db.get_index_type<sport_object_index>().indices().get<by_id>();
vector<sport_object> result;
for (const sport_object& sport : sport_index)
for (const sport_object& sport : sport_object_idx)
{
result.emplace_back(sport);
}
return result;
}
vector<event_group_object> database_api_impl::list_event_groups(sport_id_type sport_id) const
{
vector<event_group_object> result;
const auto& event_group_idx = _db.get_index_type<event_group_object_index>().indices().get<by_sport_id>();
for (const event_group_object& event_group : event_group_idx)
{
result.emplace_back(event_group);
}
return result;
}
//////////////////////////////////////////////////////////////////////
// //
// Markets / feeds //

View file

@ -39,6 +39,8 @@
#include <graphene/chain/operation_history_object.hpp>
#include <graphene/chain/proposal_object.hpp>
#include <graphene/chain/sport_object.hpp>
#include <graphene/chain/event_group_object.hpp>
#include <graphene/chain/worker_object.hpp>
#include <graphene/chain/witness_object.hpp>
@ -322,6 +324,11 @@ class database_api
*/
vector<sport_object> list_sports() const;
/**
* @brief Return a list of all event groups for a sport (e.g. all soccer leagues in soccer)
*/
vector<event_group_object> list_event_groups(sport_id_type sport_id) const;
/////////////////////
// Markets / feeds //
/////////////////////

View file

@ -31,6 +31,8 @@ namespace graphene { namespace chain {
class database;
struct by_sport_id;
class event_group_object : public graphene::db::abstract_object< event_group_object >
{
public:
@ -44,7 +46,9 @@ class event_group_object : public graphene::db::abstract_object< event_group_obj
typedef multi_index_container<
event_group_object,
indexed_by<
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > > > > event_group_object_multi_index_type;
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
ordered_non_unique< tag<by_sport_id>, member< event_group_object, sport_id_type, &event_group_object::sport_id > > >
> event_group_object_multi_index_type;
typedef generic_index<event_group_object, event_group_object_multi_index_type> event_group_object_index;
} } // graphene::chain