summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/clientapi.h13
-rw-r--r--common/facadefactory.cpp2
-rw-r--r--tests/clientapitest.cpp3
3 files changed, 10 insertions, 8 deletions
diff --git a/common/clientapi.h b/common/clientapi.h
index 6237cfb..c4125bd 100644
--- a/common/clientapi.h
+++ b/common/clientapi.h
@@ -62,14 +62,19 @@ public:
62 return Akonadi2::resourceName(instanceIdentifier); 62 return Akonadi2::resourceName(instanceIdentifier);
63 } 63 }
64 64
65 static QList<QByteArray> getResources(const QList<QByteArray> &resourceFilter) 65 static QList<QByteArray> getResources(const QList<QByteArray> &resourceFilter, const QByteArray &type)
66 { 66 {
67 //Return the global resource (signified by an empty name) for types that don't eblong to a specific resource
68 if (type == "akonadiresource") {
69 return QList<QByteArray>() << "";
70 }
67 QList<QByteArray> resources; 71 QList<QByteArray> resources;
68 const auto configuredResources = ResourceConfig::getResources(); 72 const auto configuredResources = ResourceConfig::getResources();
69 if (resourceFilter.isEmpty()) { 73 if (resourceFilter.isEmpty()) {
70 for (const auto &res : configuredResources) { 74 for (const auto &res : configuredResources) {
71 //TODO filter by type 75 if (configuredResources.value(res) == type) {
72 resources << res; 76 resources << res;
77 }
73 } 78 }
74 } else { 79 } else {
75 for (const auto &res : resourceFilter) { 80 for (const auto &res : resourceFilter) {
@@ -100,7 +105,7 @@ public:
100 eventLoop.quit(); 105 eventLoop.quit();
101 }); 106 });
102 // Query all resources and aggregate results 107 // Query all resources and aggregate results
103 KAsync::iterate(getResources(query.resources)) 108 KAsync::iterate(getResources(query.resources, ApplicationDomain::getTypeName<DomainType>()))
104 .template each<void, QByteArray>([query, resultSet](const QByteArray &resource, KAsync::Future<void> &future) { 109 .template each<void, QByteArray>([query, resultSet](const QByteArray &resource, KAsync::Future<void> &future) {
105 auto facade = FacadeFactory::instance().getFacade<DomainType>(resourceName(resource), resource); 110 auto facade = FacadeFactory::instance().getFacade<DomainType>(resourceName(resource), resource);
106 if (facade) { 111 if (facade) {
diff --git a/common/facadefactory.cpp b/common/facadefactory.cpp
index f833b06..64a466d 100644
--- a/common/facadefactory.cpp
+++ b/common/facadefactory.cpp
@@ -54,7 +54,7 @@ void FacadeFactory::resetFactory()
54 54
55void FacadeFactory::registerStaticFacades() 55void FacadeFactory::registerStaticFacades()
56{ 56{
57 registerFacade<Akonadi2::ApplicationDomain::AkonadiResource, ResourceFacade>("resourceconfig"); 57 registerFacade<Akonadi2::ApplicationDomain::AkonadiResource, ResourceFacade>(QByteArray());
58} 58}
59 59
60std::shared_ptr<void> FacadeFactory::getFacade(const QByteArray &resource, const QByteArray &instanceIdentifier, const QByteArray &typeName) 60std::shared_ptr<void> FacadeFactory::getFacade(const QByteArray &resource, const QByteArray &instanceIdentifier, const QByteArray &typeName)
diff --git a/tests/clientapitest.cpp b/tests/clientapitest.cpp
index 8779716..231e773 100644
--- a/tests/clientapitest.cpp
+++ b/tests/clientapitest.cpp
@@ -89,7 +89,6 @@ private Q_SLOTS:
89 { 89 {
90 ResourceConfig::clear(); 90 ResourceConfig::clear();
91 Akonadi2::FacadeFactory::instance().registerStaticFacades(); 91 Akonadi2::FacadeFactory::instance().registerStaticFacades();
92 ResourceConfig::addResource("resourceconfig", "resourceconfig");
93 92
94 Akonadi2::ApplicationDomain::AkonadiResource res; 93 Akonadi2::ApplicationDomain::AkonadiResource res;
95 res.setProperty("identifier", "dummyresource.identifier1"); 94 res.setProperty("identifier", "dummyresource.identifier1");
@@ -98,7 +97,6 @@ private Q_SLOTS:
98 Akonadi2::Store::create(res).exec().waitForFinished(); 97 Akonadi2::Store::create(res).exec().waitForFinished();
99 { 98 {
100 Akonadi2::Query query; 99 Akonadi2::Query query;
101 query.resources << "resourceconfig";
102 query.propertyFilter.insert("type", "dummyresource"); 100 query.propertyFilter.insert("type", "dummyresource");
103 async::SyncListResult<Akonadi2::ApplicationDomain::AkonadiResource::Ptr> result(Akonadi2::Store::load<Akonadi2::ApplicationDomain::AkonadiResource>(query)); 101 async::SyncListResult<Akonadi2::ApplicationDomain::AkonadiResource::Ptr> result(Akonadi2::Store::load<Akonadi2::ApplicationDomain::AkonadiResource>(query));
104 result.exec(); 102 result.exec();
@@ -108,7 +106,6 @@ private Q_SLOTS:
108 Akonadi2::Store::remove(res).exec().waitForFinished(); 106 Akonadi2::Store::remove(res).exec().waitForFinished();
109 { 107 {
110 Akonadi2::Query query; 108 Akonadi2::Query query;
111 query.resources << "resourceconfig";
112 query.propertyFilter.insert("type", "dummyresource"); 109 query.propertyFilter.insert("type", "dummyresource");
113 async::SyncListResult<Akonadi2::ApplicationDomain::AkonadiResource::Ptr> result(Akonadi2::Store::load<Akonadi2::ApplicationDomain::AkonadiResource>(query)); 110 async::SyncListResult<Akonadi2::ApplicationDomain::AkonadiResource::Ptr> result(Akonadi2::Store::load<Akonadi2::ApplicationDomain::AkonadiResource>(query));
114 result.exec(); 111 result.exec();