userver: samples/ydb_service/views/bson-reading/post/view.cpp
Loading...
Searching...
No Matches
samples/ydb_service/views/bson-reading/post/view.cpp
#include "view.hpp"
namespace sample {
std::string BsonReadingHandler::HandleRequest(server::http::HttpRequest& request, server::request::RequestContext&)
const {
static const std::string kSelectQuery = R"(
--!syntax_v1
DECLARE $id AS String;
SELECT doc FROM orders WHERE id = $id;
)";
auto response = ydb_client_->ExecuteDataQuery(kSelectQuery, "$id", request.GetArg("id"));
if (response.GetCursorCount() != 1) {
throw std::runtime_error("Unexpected response data");
}
auto cursor = response.GetSingleCursor();
if (!cursor.empty()) {
auto row = cursor.GetFirstRow();
formats::bson::MakeDoc("doc", formats::bson::FromBinaryString(row.Get<std::string>("doc")))
)
}
request.SetResponseStatus(server::http::HttpStatus::kNotFound);
return {};
}
} // namespace sample