#include <cinttypes>
#include <functional>
#include <memory>
+#include <vector>
#include <log/log.h>
#include <common.h>
#include <request/CancelRequest.h>
#include <request/CheckRequest.h>
#include <request/InsertOrUpdateBucketRequest.h>
+#include <request/ListRequest.h>
#include <request/RemoveBucketRequest.h>
#include <request/RequestContext.h>
#include <request/SetPoliciesRequest.h>
#include <response/CancelResponse.h>
#include <response/CheckResponse.h>
#include <response/CodeResponse.h>
+#include <response/ListResponse.h>
+#include <types/Policy.h>
#include <main/Cynara.h>
#include <agent/AgentManager.h>
request->sequenceNumber()));
}
+void Logic::execute(RequestContextPtr context, ListRequestPtr request) {
+ bool bucketValid = true;
+
+ std::vector<Policy> policies;
+ try {
+ policies = m_storage->listPolicies(request->bucket(), request->filter());
+ } catch (const BucketNotExistsException &ex) {
+ bucketValid = false;
+ }
+
+ context->returnResponse(context, std::make_shared<ListResponse>(policies, bucketValid,
+ request->sequenceNumber()));
+}
+
void Logic::execute(RequestContextPtr context, RemoveBucketRequestPtr request) {
auto code = CodeResponse::Code::OK;
try {
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);