dimon-torchila

Untitled

May 6th, 2023 (edited)
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.63 KB | None | 0 0
  1. #include "set_couriers.hpp"
  2.  
  3. #include <fmt/format.h>
  4.  
  5. #include <userver/server/handlers/http_handler_base.hpp>
  6. #include <userver/storages/postgres/cluster.hpp>
  7. #include <userver/storages/postgres/component.hpp>
  8. #include <userver/utils/assert.hpp>
  9.  
  10. namespace enrollment_couriers{
  11. namespace {
  12. class Couriers final : public userver::server::handlers::HttpHandlerBase{
  13.  public:
  14.   static constexpr std::string_view kName = "handler-set-couriers";
  15.  
  16.   Couriers(const userver::components::ComponentConfig& config,
  17.        const userver::components::ComponentContext& component_context)
  18.       : HttpHandlerBase(config, component_context),
  19.         pg_cluster_(
  20.             component_context
  21.                 .FindComponent<userver::components::Postgres>("postgres-db-1")
  22.                 .GetCluster()) {}
  23.  
  24.   // void AddCouriers(const userver::server::http::HttpRequest& request,
  25.   //                  userver::server::request::RequestContext&) const override
  26.   // {
  27.   //   const auto& courier_list = userver::formats::json::FromString(request.RequestBody());
  28.   //   if(!courier_list.empty) {
  29.   //     for (const auto& value : courier_list) {
  30.   //       std::vector<int> regions = value["regions"];
  31.   //       courier_type type = value["courier_type"];
  32.   //       std::vector<std::string> working_hours = value["working_hours"];
  33.   //       pg_cluster_->Execute(
  34.   //           userver::storages::postgres::ClusterHostType::kMaster,
  35.   //           "INSERT INTO hello_schema.couriers(type, regions, work_hours)"
  36.   //           "VALUES (type, regions, working_hours)");
  37.   //     }
  38.   //   }
  39.   // }
  40.   std::string HandleRequestThrow(const userver::server::http::HttpRequest& request,
  41.       userver::server::request::RequestContext&) const override {
  42.     std::string res = "";
  43.     const auto& id = request.GetArg("id"),
  44.                 type = request.GetArg("type"),
  45.                 region = request.GetArg("region"),
  46.                 hours = request.GetArg("working_hours");
  47.  
  48.     auto result = pg_cluster_->Execute(
  49.                             userver::storages::postgres::ClusterHostType::kMaster,
  50.                             "INSERT INTO hello_schema.couriers(courier_id, courier_type, regions, working_hours)"
  51.                             "VALUES($1, $2, $3, $4)",
  52.                             id, type, region, hours);
  53.     if(result.RowsAffected() == 1)
  54.       res = "Courier added succesfully!!!";
  55.     else
  56.       res = "Somthing went wrong...";
  57.  
  58.     return res;
  59.   }
  60.   userver::storages::postgres::ClusterPtr pg_cluster_;
  61. };
  62. }
  63.  
  64.   void AppendCouriers(userver::components::ComponentList& component_list) {
  65.     component_list.Append<Couriers>();
  66.   }
  67. }
Add Comment
Please, Sign In to add comment