From 2d4f18280f8f22cb30cfba1a4e6985ce1531aa0d Mon Sep 17 00:00:00 2001 From: SynaptiCAD User Date: Sun, 19 Mar 2017 22:12:31 -0400 Subject: [PATCH] [DLN] implement list_betting_market_groups(event_id) --- libraries/app/database_api.cpp | 18 ++++++++++++++++-- .../app/include/graphene/app/database_api.hpp | 6 ++++++ .../graphene/chain/betting_market_object.hpp | 6 +++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/libraries/app/database_api.cpp b/libraries/app/database_api.cpp index ee3f8c30..b44a867d 100644 --- a/libraries/app/database_api.cpp +++ b/libraries/app/database_api.cpp @@ -96,8 +96,9 @@ class database_api_impl : public std::enable_shared_from_this vector> lookup_asset_symbols(const vector& symbols_or_ids)const; // Peerplays - vector list_sports() const; - vector list_event_groups(sport_id_type sport_id) const; + vector list_sports() const; + vector list_event_groups(sport_id_type sport_id) const; + vector list_betting_market_groups(event_id_type) const; // Markets / feeds vector get_limit_orders(asset_id_type a, asset_id_type b, uint32_t limit)const; @@ -911,6 +912,19 @@ vector database_api_impl::list_event_groups(sport_id_type sp } return result; } + +vector database_api_impl::list_betting_market_groups(event_id_type event_id) const +{ + vector result; + const auto& betting_market_group_idx = _db.get_index_type().indices().get(); + for (const betting_market_group_object& betting_market_group : betting_market_group_idx) + { + result.emplace_back(betting_market_group); + } + return result; +} + + ////////////////////////////////////////////////////////////////////// // // // Markets / feeds // diff --git a/libraries/app/include/graphene/app/database_api.hpp b/libraries/app/include/graphene/app/database_api.hpp index 28cf6af1..8cdfa9a7 100644 --- a/libraries/app/include/graphene/app/database_api.hpp +++ b/libraries/app/include/graphene/app/database_api.hpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -329,6 +330,11 @@ class database_api */ vector list_event_groups(sport_id_type sport_id) const; + /** + * @brief Return a list of all betting market groups for an event + */ + vector list_betting_market_groups(event_id_type) const; + ///////////////////// // Markets / feeds // ///////////////////// diff --git a/libraries/chain/include/graphene/chain/betting_market_object.hpp b/libraries/chain/include/graphene/chain/betting_market_object.hpp index a7357c4e..99586fff 100644 --- a/libraries/chain/include/graphene/chain/betting_market_object.hpp +++ b/libraries/chain/include/graphene/chain/betting_market_object.hpp @@ -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, member< object, object_id_type, &object::id > > > > betting_market_group_object_multi_index_type; + ordered_unique< tag, member< object, object_id_type, &object::id > >, + ordered_non_unique< tag, member > + > > betting_market_group_object_multi_index_type; typedef generic_index betting_market_group_object_index; typedef multi_index_container<