Clio  develop
The XRP Ledger API server.
Loading...
Searching...
No Matches
ErrorHandling.hpp
1#pragma once
2
3#include "rpc/Errors.hpp"
4#include "web/ng/Request.hpp"
5#include "web/ng/Response.hpp"
6
7#include <boost/beast/http/status.hpp>
8#include <boost/json/object.hpp>
9#include <boost/json/serialize.hpp>
10#include <fmt/format.h>
11#include <xrpl/protocol/ErrorCodes.h>
12#include <xrpl/protocol/jss.h>
13
14#include <functional>
15#include <optional>
16
17namespace web::ng::impl {
18
23 std::reference_wrapper<Request const> rawRequest_;
24 std::optional<boost::json::object> request_;
25
26public:
34 Request const& rawRequest,
35 std::optional<boost::json::object> request = std::nullopt
36 );
37
44 [[nodiscard]] Response
45 makeError(rpc::Status const& err) const;
46
52 [[nodiscard]] Response
53 makeInternalError() const;
54
60 [[nodiscard]] Response
61 makeNotReadyError() const;
62
68 [[nodiscard]] Response
69 makeTooBusyError() const;
70
76 [[nodiscard]] Response
78
85 [[nodiscard]] boost::json::object
86 composeError(rpc::Status const& error) const;
87
94 [[nodiscard]] boost::json::object
96};
97
98} // namespace web::ng::impl
Represents an HTTP or WebSocket request.
Definition Request.hpp:18
Represents an HTTP or Websocket response.
Definition Response.hpp:21
Response makeTooBusyError() const
Make a response for when the server is too busy.
Definition ErrorHandling.cpp:126
boost::json::object composeError(rpc::Status const &error) const
Compose an error into json object from a status.
Definition ErrorHandling.cpp:158
Response makeJsonParsingError() const
Make a response when json parsing fails.
Definition ErrorHandling.cpp:144
Response makeError(rpc::Status const &err) const
Make an error response from a status.
Definition ErrorHandling.cpp:62
Response makeNotReadyError() const
Make a response for when the server is not ready.
Definition ErrorHandling.cpp:120
Response makeInternalError() const
Make an internal error response.
Definition ErrorHandling.cpp:110
ErrorHelper(Request const &rawRequest, std::optional< boost::json::object > request=std::nullopt)
Construct a new Error Helper object.
Definition ErrorHandling.cpp:56
ripple::error_code_i RippledError
Clio uses compatible Rippled error codes for most RPC errors.
Definition Errors.hpp:54
A status returned from any RPC handler.
Definition Errors.hpp:65