9 #include <boost/range/algorithm/transform.hpp>
10 #include <boost/range/algorithm/sort.hpp>
32 if (adv_property_object.moderator == SCORUM_MISSING_MODERATOR_ACCOUNT)
44 std::vector<budget_api_obj> ret;
45 ret.reserve(post_budgets.size() + banner_budgets.size());
47 boost::transform(post_budgets, std::back_inserter(ret),
49 boost::transform(banner_budgets, std::back_inserter(ret),
64 case budget_type::banner:
68 FC_THROW(
"unreachable");
78 case budget_type::banner:
82 FC_THROW(
"unreachable");
90 return std::vector<percent_type>{
_adv_service.
get().auction_post_coefficients.begin(),
93 case budget_type::banner:
94 return std::vector<percent_type>{
_adv_service.
get().auction_banner_coefficients.begin(),
98 FC_THROW(
"unreachable");
102 template <budget_type budget_type_v>
106 fc::optional<budget_api_obj> ret;
109 ret = budget_service.
get(uuid);
114 template <budget_type budget_type_v>
115 std::vector<budget_api_obj>
121 const auto& auction_coeffs =
_adv_service.
get().get_auction_coefficients<budget_type_v>();
123 auto budgets = budget_service.
get_top_budgets(head_block_time, auction_coeffs.size());
125 std::vector<budget_api_obj> ret;
126 ret.reserve(auction_coeffs.size());
chain::account_service_i & _account_service
std::vector< budget_api_obj > get_current_winners(budget_type type) const
chain::post_budget_service_i & _post_budget_service
std::vector< percent_type > get_auction_coefficients(budget_type type) const
std::vector< budget_api_obj > get_user_budgets(const std::string &user) const
chain::banner_budget_service_i & _banner_budget_service
chain::advertising_property_service_i & _adv_service
chain::dynamic_global_property_service_i & _dyn_props_service
fc::optional< account_api_obj > get_moderator() const
impl(chain::database &db, chain::data_service_factory_i &services)
chain::data_service_factory_i & _services
fc::optional< budget_api_obj > get_budget(const uuid_type &uuid, budget_type type) const
fc::time_point_sec created
tracks the blockchain state in an extensible manner
time_point_sec time
Current head block time.
boost::uuids::uuid uuid_type
virtual const account_object & get_account(const account_name_type &) const =0
virtual budgets_type get_budgets() const =0
virtual bool is_exists(const uuid_type &uuid) const =0
virtual budgets_type get_top_budgets(const fc::time_point_sec &until, uint16_t limit) const =0
virtual const adv_budget_object< budget_type_v > & get(const oid< adv_budget_object< budget_type_v >> &) const =0
virtual const object_type & get() const =0