Fixed deleteting of sport with related event_groups.
This commit is contained in:
parent
0b1e165bf3
commit
c829228aca
2 changed files with 26 additions and 7 deletions
|
|
@ -23,6 +23,7 @@
|
|||
*/
|
||||
#include <graphene/chain/sport_evaluator.hpp>
|
||||
#include <graphene/chain/sport_object.hpp>
|
||||
#include <graphene/chain/event_group_object.hpp>
|
||||
#include <graphene/chain/account_object.hpp>
|
||||
#include <graphene/chain/database.hpp>
|
||||
#include <graphene/chain/exceptions.hpp>
|
||||
|
|
@ -80,7 +81,21 @@ void_result sport_delete_evaluator::do_evaluate( const sport_delete_operation& o
|
|||
void_result sport_delete_evaluator::do_apply( const sport_delete_operation& op )
|
||||
{ try {
|
||||
database& _db = db();
|
||||
|
||||
const auto& event_group_by_sport_id = _db.get_index_type<event_group_object_index>().indices().get<by_sport_id>();
|
||||
auto event_group_it = event_group_by_sport_id.lower_bound(op.sport_id);
|
||||
auto event_group_end_it = event_group_by_sport_id.upper_bound(op.sport_id);
|
||||
for (; event_group_it != event_group_end_it; ++event_group_it)
|
||||
{
|
||||
_db.modify(*event_group_it, [&](event_group_object& event_group) {
|
||||
event_group.cancel_events(_db);
|
||||
});
|
||||
|
||||
_db.remove(*event_group_it);
|
||||
}
|
||||
|
||||
_db.remove(_db.get(op.sport_id));
|
||||
|
||||
return void_result();
|
||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||
|
||||
|
|
|
|||
|
|
@ -1531,11 +1531,15 @@ BOOST_AUTO_TEST_CASE(sport_delete_test)
|
|||
{
|
||||
try
|
||||
{
|
||||
ACTORS( (alice) );
|
||||
CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0);
|
||||
|
||||
delete_sport(ice_hockey.id);
|
||||
|
||||
const auto& sport_by_id = db.get_index_type<sport_object_index>().indices().get<by_id>();
|
||||
const auto& event_group_by_id = db.get_index_type<event_group_object_index>().indices().get<by_id>();
|
||||
|
||||
BOOST_CHECK(sport_by_id.end() == sport_by_id.find(ice_hockey.id));
|
||||
BOOST_CHECK(event_group_by_id.end() == event_group_by_id.find(nhl.id));
|
||||
} FC_LOG_AND_RETHROW()
|
||||
}
|
||||
|
||||
|
|
@ -1589,13 +1593,13 @@ BOOST_AUTO_TEST_CASE(event_group_delete_test)
|
|||
{
|
||||
CREATE_ICE_HOCKEY_BETTING_MARKET(false, 0);
|
||||
|
||||
const auto& event_1 = create_event({{"en", "Washington Capitals/Chicago Blackhawks1"}}, {{"en", "2016-17"}}, nhl.id);
|
||||
const auto& event_2 = create_event({{"en", "Washington Capitals/Chicago Blackhawks2"}}, {{"en", "2016-17"}}, nhl.id);
|
||||
const auto& event_3 = create_event({{"en", "Washington Capitals/Chicago Blackhawks3"}}, {{"en", "2016-17"}}, nhl.id);
|
||||
const auto& event_1 = create_event({{"en", "event 1"}}, {{"en", "2016-17"}}, nhl.id);
|
||||
const auto& event_2 = create_event({{"en", "event 2"}}, {{"en", "2016-17"}}, nhl.id);
|
||||
const auto& event_3 = create_event({{"en", "event 3"}}, {{"en", "2016-17"}}, nhl.id);
|
||||
|
||||
const auto& market_group = create_betting_market_group({{"en", "Moneyline1"}}, event_1.id, betting_market_rules.id, asset_id_type(), false, 0);
|
||||
const auto& market_1 = create_betting_market(market_group.id, {{"en", "M. Cilic defeats R. Federer1"}});
|
||||
const auto& market_2 = create_betting_market(market_group.id, {{"en", "M. Cilic defeats R. Federer2"}});
|
||||
const auto& market_group = create_betting_market_group({{"en", "market group 1"}}, event_1.id, betting_market_rules.id, asset_id_type(), false, 0);
|
||||
const auto& market_1 = create_betting_market(market_group.id, {{"en", "market 1"}});
|
||||
const auto& market_2 = create_betting_market(market_group.id, {{"en", "market 2"}});
|
||||
|
||||
delete_event_group(nhl.id);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue