diff --git a/backend/service/include/adminive/adapters/drogon.hpp b/backend/service/include/adminive/adapters/drogon.hpp index e156156..4d165b9 100644 --- a/backend/service/include/adminive/adapters/drogon.hpp +++ b/backend/service/include/adminive/adapters/drogon.hpp @@ -235,13 +235,15 @@ public: }); }, post_constraints); } - const auto bind_update = [service, options](const drogon::HttpRequestPtr& request, std::function&& callback, std::uint64_t id) { - schedule_drogon_request(options.executor, std::move(callback), [service, id, body = std::string(request->getBody())] { - return service->update_response(id, body); - }); + const auto make_update_handler = [service, options] { + return [service, options](const drogon::HttpRequestPtr& request, std::function&& callback, std::uint64_t id) { + schedule_drogon_request(options.executor, std::move(callback), [service, id, body = std::string(request->getBody())] { + return service->update_response(id, body); + }); + }; }; - app.registerHandler(service->path() + "/{1:id}", bind_update, put_constraints); - app.registerHandler(service->path() + "/{1:id}", bind_update, patch_constraints); + app.registerHandler(service->path() + "/{1:id}", make_update_handler(), put_constraints); + app.registerHandler(service->path() + "/{1:id}", make_update_handler(), patch_constraints); app.registerHandler(service->path() + "/{1:id}", [service, options](const drogon::HttpRequestPtr&, std::function&& callback, std::uint64_t id) { schedule_drogon_request(options.executor, std::move(callback), [service, id] { return service->delete_response(id);