• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

egorpristanskii / distributed_storage / 16243544706

13 Jul 2025 12:33AM UTC coverage: 81.986% (-6.2%) from 88.204%
16243544706

push

github

egorpristanskii
Fix boost asio and custom coroutines mix, add middleware integration, add log middleware

49 of 66 branches covered (74.24%)

Branch coverage included in aggregate %.

26 of 57 new or added lines in 6 files covered. (45.61%)

2 existing lines in 2 files now uncovered.

306 of 367 relevant lines covered (83.38%)

11.11 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

65.52
/src/app.cpp
1
#include "app.h"
2

3
#include "middleware/middleware.h"
4
#include "network/request.h"
5
#include "network/response.h"
6
#include "network/router.h"
7

8
#include <asio/awaitable.hpp>
9

10
namespace app {
11
Application::Application(const std::string& logFile)
12
    : router_(std::make_shared<router::Router>()),
4✔
13
      handler_(std::make_shared<storage::StorageRouterAdapter>(logFile)) {
4✔
14
    router_->addRoute(network::HTTPMethod::GET, "keys/{id}", handler_,
4✔
15
                      &storage::StorageRouterAdapter::get);
4✔
16
    router_->addRoute(network::HTTPMethod::POST, "keys/{id}", handler_,
4✔
17
                      &storage::StorageRouterAdapter::put);
4✔
18
    router_->addRoute(network::HTTPMethod::DELETE, "keys/{id}", handler_,
4✔
19
                      &storage::StorageRouterAdapter::remove);
4✔
20
    router_->addRoute(network::HTTPMethod::GET, "allkeys", handler_,
4✔
21
                      &storage::StorageRouterAdapter::listAllData);
4✔
22

23
    auto app_handler = [this](const network::Request& request) {
4✔
NEW
24
        return this->asyncHandleRequest(request);
×
NEW
25
    };
×
26
    pipeline_ = middleware::MiddleWareChain(
4✔
27
                    {std::make_shared<middleware::LogMiddleware>()})
4✔
28
                    .buildPipeline(app_handler);
4✔
29
}
4✔
30

31
asio::awaitable<network::Response> Application::processRequest(
NEW
32
    const network::Request& request) {
×
NEW
33
    auto response = co_await pipeline_(request);
×
NEW
34
    co_return response;
×
NEW
35
}
×
36

37
asio::awaitable<network::Response> Application::asyncHandleRequest(
NEW
38
    const network::Request& request) {
×
NEW
39
    co_return router_->handleRoute(request.method, request.path,
×
NEW
40
                                   request.parseBody());
×
UNCOV
41
}
×
42

43
network::Response Application::handleRequest(const network::Request& request) {
6✔
44
    return router_->handleRoute(request.method, request.path,
6✔
45
                                request.parseBody());
6✔
46
}
6✔
47
}  // namespace app
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc