|
@@ -14,7 +14,7 @@ const std::string kContentTypeTextHtml{"text/html; charset=utf-8"};
|
|
|
|
|
|
struct Fortune final {
|
|
|
int id;
|
|
|
- std::string message;
|
|
|
+ std::string_view message;
|
|
|
};
|
|
|
|
|
|
constexpr std::string_view kResultingHtmlHeader{
|
|
@@ -133,7 +133,8 @@ Handler::Handler(const userver::components::ComponentConfig& config,
|
|
|
.FindComponent<userver::components::Postgres>(
|
|
|
db_helpers::kDbComponentName)
|
|
|
.GetCluster()},
|
|
|
- select_all_fortunes_query_{"SELECT id, message FROM Fortune"},
|
|
|
+ select_all_fortunes_query_{
|
|
|
+ db_helpers::CreateNonLoggingQuery("SELECT id, message FROM Fortune")},
|
|
|
semaphore_{kBestConcurrencyWildGuess} {}
|
|
|
|
|
|
std::string Handler::HandleRequestThrow(
|
|
@@ -144,14 +145,14 @@ std::string Handler::HandleRequestThrow(
|
|
|
}
|
|
|
|
|
|
std::string Handler::GetResponse() const {
|
|
|
- auto fortunes = [this] {
|
|
|
+ const auto pg_result = [this] {
|
|
|
const auto lock = semaphore_.Acquire();
|
|
|
- return pg_
|
|
|
- ->Execute(db_helpers::kClusterHostType, select_all_fortunes_query_)
|
|
|
- .AsContainer<std::vector<Fortune>>(
|
|
|
- userver::storages::postgres::kRowTag);
|
|
|
+ return pg_->Execute(db_helpers::kClusterHostType,
|
|
|
+ select_all_fortunes_query_);
|
|
|
}();
|
|
|
|
|
|
+ auto fortunes = pg_result.AsContainer<std::vector<Fortune>>(
|
|
|
+ userver::storages::postgres::kRowTag);
|
|
|
fortunes.push_back({0, "Additional fortune added at request time."});
|
|
|
|
|
|
std::sort(fortunes.begin(), fortunes.end(),
|