Skip to content

Commit 67b6fc1

Browse files
Logging
1 parent 0c8f2b6 commit 67b6fc1

File tree

4 files changed

+34
-6
lines changed

4 files changed

+34
-6
lines changed

ton-http-api/src/converters/send.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
#include "auto/tl/tonlib_api.h"
33
#include "schemas/v2.hpp"
44

5-
65
namespace ton_http::converters {
76

87
using namespace ton;

ton-http-api/src/handlers/TonlibRequestHandler.h

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,9 @@ class TonlibRequestHandler : public userver::server::handlers::HttpHandlerBase {
112112
std::string HandleRequestThrow(const HttpRequest& request, RequestContext& context) const override {
113113
auto session = tonlib_component_.GetNewSession();
114114
schemas::v2::TonlibErrorResponse error_response;
115+
Request tonlib_request;
115116
try {
116-
auto tonlib_request = ParseTonlibRequestThrow(request, context);
117+
tonlib_request = ParseTonlibRequestThrow(request, context);
117118
auto tonlib_response = HandleRequestTonlibThrow(tonlib_request, session);
118119
if (tonlib_response.is_error()) {
119120
auto tonlib_error = tonlib_response.move_as_error();
@@ -129,7 +130,10 @@ class TonlibRequestHandler : public userver::server::handlers::HttpHandlerBase {
129130
if (use_custom_serializer_) {
130131
throw std::runtime_error("not implemented");
131132
}
132-
return ToString(userver::formats::json::ValueBuilder{response}.ExtractValue());
133+
134+
auto response_body = userver::formats::json::ValueBuilder{response}.ExtractValue();
135+
LogTonlibRequest(request, context, tonlib_request, response_body, std::nullopt, userver::logging::Level::kInfo);
136+
return ToString(response_body);
133137
} catch (const utils::TonlibException& error) {
134138
error_response = PrepareErrorResponse(error);
135139
} catch (const std::exception& exc) {
@@ -142,7 +146,10 @@ class TonlibRequestHandler : public userver::server::handlers::HttpHandlerBase {
142146
auto& http_response = request.GetHttpResponse();
143147
http_response.SetContentType(userver::http::content_type::kApplicationJson);
144148
http_response.SetStatus(static_cast<userver::server::http::HttpStatus>(error_response.code));
145-
return ToString(userver::formats::json::ValueBuilder{error_response}.ExtractValue());
149+
150+
auto response_body = userver::formats::json::ValueBuilder{error_response}.ExtractValue();
151+
LogTonlibRequest(request, context, tonlib_request, std::nullopt, response_body, userver::logging::Level::kWarning);
152+
return ToString(response_body);
146153
}
147154
TonlibRequestHandler(
148155
const userver::components::ComponentConfig& config, const userver::components::ComponentContext& context
@@ -155,6 +162,28 @@ class TonlibRequestHandler : public userver::server::handlers::HttpHandlerBase {
155162
use_custom_serializer_(config["use_custom_serializer"].As<bool>(false)) {
156163
}
157164

165+
void LogTonlibRequest(
166+
const HttpRequest& request,
167+
RequestContext&,
168+
const Request& req,
169+
std::optional<userver::formats::json::Value> response = std::nullopt,
170+
std::optional<userver::formats::json::Value> error = std::nullopt,
171+
const userver::logging::Level log_level = userver::logging::Level::kInfo
172+
) const {
173+
userver::logging::LogExtra log_extra;
174+
log_extra.Extend("http_method", request.GetMethodStr());
175+
log_extra.Extend("api_method", request.GetRequestPath());
176+
auto request_body = userver::formats::json::ValueBuilder{req}.ExtractValue();
177+
log_extra.Extend("request", request_body);
178+
if (response.has_value()) {
179+
log_extra.Extend("response", response.value());
180+
}
181+
if (error.has_value()) {
182+
log_extra.Extend("response", error.value());
183+
}
184+
LOG_TO(*logger_, log_level) << log_extra;
185+
}
186+
158187
static userver::yaml_config::Schema GetStaticConfigSchema() {
159188
return userver::yaml_config::MergeSchemas<HttpHandlerBase>(R"(
160189
type: object

ton-http-api/src/handlers/transactions/GetBlockTransactionsExtHandler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ td::Status ton_http::handlers::GetBlockTransactionsExtHandler::ValidateRequest(
7878
return td::Status::Error(422, "count should be positive");
7979
}
8080
if (request.count > 2000) {
81-
return td::Status::Error(422, "count should be less or equal 100");
81+
return td::Status::Error(422, "count should be less or equal 2000");
8282
}
8383
if (request.seqno <= 0) {
8484
return td::Status::Error(422, "seqno should be positive");

ton-http-api/src/handlers/transactions/GetBlockTransactionsHandler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ td::Status ton_http::handlers::GetBlockTransactionsHandler::ValidateRequest(
7878
return td::Status::Error(422, "count should be positive");
7979
}
8080
if (request.count > 2000) {
81-
return td::Status::Error(422, "count should be less or equal 100");
81+
return td::Status::Error(422, "count should be less or equal 2000");
8282
}
8383
if (request.seqno <= 0) {
8484
return td::Status::Error(422, "seqno should be positive");

0 commit comments

Comments
 (0)