From 80482440c08b64b304ec72bb8b8f5f1574700859 Mon Sep 17 00:00:00 2001 From: Lukasz Wojciechowski Date: Sun, 30 Nov 2014 01:48:42 +0100 Subject: [PATCH] Implement listPolicies() in service Logic layer Implementation lists policies from Storage and returns filled vector of Policies. It catches also BucketNotExistsException that is thrown when invalid bucket is passed in ListRequest. Change-Id: I7b3777b70f654d9a7324c6203e9f25eebb029f1e --- src/service/logic/Logic.cpp | 18 ++++++++++++++++++ src/service/logic/Logic.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/service/logic/Logic.cpp b/src/service/logic/Logic.cpp index 684eac3..679da17 100644 --- a/src/service/logic/Logic.cpp +++ b/src/service/logic/Logic.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -42,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -50,6 +52,8 @@ #include #include #include +#include +#include #include
#include @@ -277,6 +281,20 @@ void Logic::execute(RequestContextPtr context, InsertOrUpdateBucketRequestPtr re request->sequenceNumber())); } +void Logic::execute(RequestContextPtr context, ListRequestPtr request) { + bool bucketValid = true; + + std::vector policies; + try { + policies = m_storage->listPolicies(request->bucket(), request->filter()); + } catch (const BucketNotExistsException &ex) { + bucketValid = false; + } + + context->returnResponse(context, std::make_shared(policies, bucketValid, + request->sequenceNumber())); +} + void Logic::execute(RequestContextPtr context, RemoveBucketRequestPtr request) { auto code = CodeResponse::Code::OK; try { diff --git a/src/service/logic/Logic.h b/src/service/logic/Logic.h index 33c5701..d347071 100644 --- a/src/service/logic/Logic.h +++ b/src/service/logic/Logic.h @@ -70,6 +70,7 @@ public: virtual void execute(RequestContextPtr context, CancelRequestPtr request); virtual void execute(RequestContextPtr context, CheckRequestPtr request); virtual void execute(RequestContextPtr context, InsertOrUpdateBucketRequestPtr request); + virtual void execute(RequestContextPtr context, ListRequestPtr request); virtual void execute(RequestContextPtr context, RemoveBucketRequestPtr request); virtual void execute(RequestContextPtr context, SetPoliciesRequestPtr request); virtual void execute(RequestContextPtr context, SignalRequestPtr request); -- 2.7.4