summaryrefslogtreecommitdiffstats
path: root/framework/src/sinkfabric.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/sinkfabric.cpp')
-rw-r--r--framework/src/sinkfabric.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/framework/src/sinkfabric.cpp b/framework/src/sinkfabric.cpp
index 68a75a86..5e209526 100644
--- a/framework/src/sinkfabric.cpp
+++ b/framework/src/sinkfabric.cpp
@@ -53,6 +53,15 @@ public:
53 Store::synchronize(SyncScope()).exec(); 53 Store::synchronize(SyncScope()).exec();
54 } 54 }
55 } 55 }
56 if (id == "sendOutbox"/*Kube::Messages::synchronize*/) {
57 Query query;
58 query.containsFilter<SinkResource::Capabilities>(ResourceCapabilities::Mail::transport);
59 auto job = Store::fetchAll<SinkResource>(query)
60 .each([=](const SinkResource::Ptr &resource) -> KAsync::Job<void> {
61 return Store::synchronize(SyncScope{}.resourceFilter(resource->identifier()));
62 });
63 job.exec();
64 }
56 if (id == "markAsRead"/*Kube::Messages::synchronize*/) { 65 if (id == "markAsRead"/*Kube::Messages::synchronize*/) {
57 if (auto mail = message["mail"].value<ApplicationDomain::Mail::Ptr>()) { 66 if (auto mail = message["mail"].value<ApplicationDomain::Mail::Ptr>()) {
58 mail->setUnread(false); 67 mail->setUnread(false);
@@ -77,6 +86,12 @@ public:
77 Store::modify(*mail).exec(); 86 Store::modify(*mail).exec();
78 } 87 }
79 } 88 }
89 if (id == "moveToDrafts"/*Kube::Messages::synchronize*/) {
90 if (auto mail = message["mail"].value<ApplicationDomain::Mail::Ptr>()) {
91 mail->setDraft(true);
92 Store::modify(*mail).exec();
93 }
94 }
80 if (id == "moveToFolder"/*Kube::Messages::synchronize*/) { 95 if (id == "moveToFolder"/*Kube::Messages::synchronize*/) {
81 if (auto mail = message["mail"].value<ApplicationDomain::Mail::Ptr>()) { 96 if (auto mail = message["mail"].value<ApplicationDomain::Mail::Ptr>()) {
82 auto folder = message["folder"].value<ApplicationDomain::Folder::Ptr>(); 97 auto folder = message["folder"].value<ApplicationDomain::Folder::Ptr>();