[DLN] implement list_betting_market_groups(event_id)

This commit is contained in:
SynaptiCAD User 2017-03-19 22:12:31 -04:00
parent 20a64be400
commit 2d4f18280f
3 changed files with 27 additions and 3 deletions

View file

@ -96,8 +96,9 @@ class database_api_impl : public std::enable_shared_from_this<database_api_impl>
vector<optional<asset_object>> lookup_asset_symbols(const vector<string>& symbols_or_ids)const;
// Peerplays
vector<sport_object> list_sports() const;
vector<event_group_object> list_event_groups(sport_id_type sport_id) const;
vector<sport_object> list_sports() const;
vector<event_group_object> list_event_groups(sport_id_type sport_id) const;
vector<betting_market_group_object> list_betting_market_groups(event_id_type) const;
// Markets / feeds
vector<limit_order_object> get_limit_orders(asset_id_type a, asset_id_type b, uint32_t limit)const;
@ -911,6 +912,19 @@ vector<event_group_object> database_api_impl::list_event_groups(sport_id_type sp
}
return result;
}
vector<betting_market_group_object> database_api_impl::list_betting_market_groups(event_id_type event_id) const
{
vector<betting_market_group_object> result;
const auto& betting_market_group_idx = _db.get_index_type<betting_market_group_object_index>().indices().get<by_event_id>();
for (const betting_market_group_object& betting_market_group : betting_market_group_idx)
{
result.emplace_back(betting_market_group);
}
return result;
}
//////////////////////////////////////////////////////////////////////
// //
// Markets / feeds //

View file

@ -40,6 +40,7 @@
#include <graphene/chain/proposal_object.hpp>
#include <graphene/chain/sport_object.hpp>
#include <graphene/chain/event_group_object.hpp>
#include <graphene/chain/betting_market_object.hpp>
#include <graphene/chain/worker_object.hpp>
#include <graphene/chain/witness_object.hpp>
@ -329,6 +330,11 @@ class database_api
*/
vector<event_group_object> list_event_groups(sport_id_type sport_id) const;
/**
* @brief Return a list of all betting market groups for an event
*/
vector<betting_market_group_object> list_betting_market_groups(event_id_type) const;
/////////////////////
// Markets / feeds //
/////////////////////

View file

@ -31,6 +31,8 @@ namespace graphene { namespace chain {
class database;
struct by_event_id;
class betting_market_group_object : public graphene::db::abstract_object< betting_market_group_object >
{
public:
@ -77,7 +79,9 @@ class bet_object : public graphene::db::abstract_object< bet_object >
typedef multi_index_container<
betting_market_group_object,
indexed_by<
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > > > > betting_market_group_object_multi_index_type;
ordered_unique< tag<by_id>, member< object, object_id_type, &object::id > >,
ordered_non_unique< tag<by_event_id>, member<betting_market_group_object, event_id_type, &betting_market_group_object::event_id > >
> > betting_market_group_object_multi_index_type;
typedef generic_index<betting_market_group_object, betting_market_group_object_multi_index_type> betting_market_group_object_index;
typedef multi_index_container<