From f99bf1c6e632d504033194039013629ac4de4500 Mon Sep 17 00:00:00 2001 From: SynaptiCAD User Date: Sun, 19 Mar 2017 22:44:16 -0400 Subject: [PATCH] [DLN] implement list_betting_markets(betting_market_group) --- libraries/app/database_api.cpp | 11 +++++++++++ libraries/app/include/graphene/app/database_api.hpp | 5 +++++ .../include/graphene/chain/betting_market_object.hpp | 5 ++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/libraries/app/database_api.cpp b/libraries/app/database_api.cpp index b44a867d..9320aca3 100644 --- a/libraries/app/database_api.cpp +++ b/libraries/app/database_api.cpp @@ -99,6 +99,7 @@ class database_api_impl : public std::enable_shared_from_this vector list_sports() const; vector list_event_groups(sport_id_type sport_id) const; vector list_betting_market_groups(event_id_type) const; + vector list_betting_markets(betting_market_group_id_type) const; // Markets / feeds vector get_limit_orders(asset_id_type a, asset_id_type b, uint32_t limit)const; @@ -924,6 +925,16 @@ vector database_api_impl::list_betting_market_group return result; } +vector database_api_impl::list_betting_markets(betting_market_group_id_type betting_market_group_id) const +{ + vector result; + const auto& betting_market_idx = _db.get_index_type().indices().get(); + for (const betting_market_object& betting_market : betting_market_idx) + { + result.emplace_back(betting_market); + } + return result; +} ////////////////////////////////////////////////////////////////////// // // diff --git a/libraries/app/include/graphene/app/database_api.hpp b/libraries/app/include/graphene/app/database_api.hpp index 8cdfa9a7..af8ee833 100644 --- a/libraries/app/include/graphene/app/database_api.hpp +++ b/libraries/app/include/graphene/app/database_api.hpp @@ -335,6 +335,11 @@ class database_api */ vector list_betting_market_groups(event_id_type) const; + /** + * @brief Return a list of all betting markets for a betting market group + */ + vector list_betting_markets(betting_market_group_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 99586fff..463b159b 100644 --- a/libraries/chain/include/graphene/chain/betting_market_object.hpp +++ b/libraries/chain/include/graphene/chain/betting_market_object.hpp @@ -32,6 +32,7 @@ namespace graphene { namespace chain { class database; struct by_event_id; +struct by_betting_market_group_id; class betting_market_group_object : public graphene::db::abstract_object< betting_market_group_object > { @@ -87,7 +88,9 @@ typedef generic_index, member< object, object_id_type, &object::id > > > > betting_market_object_multi_index_type; + ordered_unique< tag, member< object, object_id_type, &object::id > >, + ordered_non_unique< tag, member< betting_market_object, betting_market_group_id_type, &betting_market_object::group_id > > + > > betting_market_object_multi_index_type; typedef generic_index betting_market_object_index;