diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2017-09-03 21:44:16 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2017-09-03 21:48:53 -0700 |
commit | 72ee0f10ddca0d880e50d13446f9ac0269e542eb (patch) | |
tree | 9dc1bfe0e4300ab05fb3ac1cd44dac6c44b71c18 /src/main/java/com/p4square/grow/backend/feed | |
parent | fa7d0ec7d486dccb55c50ba635a638a855a513c1 (diff) |
Adding notification emails when questions and answers are posted to the feed.20170903
Diffstat (limited to 'src/main/java/com/p4square/grow/backend/feed')
-rw-r--r-- | src/main/java/com/p4square/grow/backend/feed/ThreadResource.java | 10 | ||||
-rw-r--r-- | src/main/java/com/p4square/grow/backend/feed/TopicResource.java | 13 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/main/java/com/p4square/grow/backend/feed/ThreadResource.java b/src/main/java/com/p4square/grow/backend/feed/ThreadResource.java index e8f46c2..12ec899 100644 --- a/src/main/java/com/p4square/grow/backend/feed/ThreadResource.java +++ b/src/main/java/com/p4square/grow/backend/feed/ThreadResource.java @@ -9,6 +9,8 @@ import java.io.IOException; import java.util.Date; import java.util.Map; +import com.p4square.grow.backend.NotificationService; +import com.p4square.grow.provider.ProvidesNotificationService; import org.restlet.data.Status; import org.restlet.resource.ServerResource; import org.restlet.representation.Representation; @@ -31,6 +33,8 @@ public class ThreadResource extends ServerResource { private String mTopic; private String mThreadId; + private NotificationService mNotifier; + @Override public void doInit() { super.doInit(); @@ -38,6 +42,8 @@ public class ThreadResource extends ServerResource { mBackend = (FeedDataProvider) getApplication(); mTopic = getAttribute("topic"); mThreadId = getAttribute("thread"); + + mNotifier = ((ProvidesNotificationService) getApplication()).getNotificationService(); } /** @@ -94,6 +100,10 @@ public class ThreadResource extends ServerResource { String collectionKey = mTopic + "/" + mThreadId; mBackend.getMessageProvider().put(collectionKey, message.getId(), message); + // Send a notification email + mNotifier.sendNotification( + String.format("A new response was posted on the %s topic:\n\n%s", mTopic, message.getMessage())); + setLocationRef(mThreadId + "/" + message.getId()); return new JacksonRepresentation(message); diff --git a/src/main/java/com/p4square/grow/backend/feed/TopicResource.java b/src/main/java/com/p4square/grow/backend/feed/TopicResource.java index 24b6a92..914e52c 100644 --- a/src/main/java/com/p4square/grow/backend/feed/TopicResource.java +++ b/src/main/java/com/p4square/grow/backend/feed/TopicResource.java @@ -9,6 +9,8 @@ import java.io.IOException; import java.util.Date; import java.util.Map; +import com.p4square.grow.backend.NotificationService; +import com.p4square.grow.provider.ProvidesNotificationService; import org.restlet.data.Status; import org.restlet.resource.ServerResource; import org.restlet.representation.Representation; @@ -31,12 +33,16 @@ public class TopicResource extends ServerResource { private FeedDataProvider mBackend; private String mTopic; + private NotificationService mNotifier; + @Override public void doInit() { super.doInit(); mBackend = (FeedDataProvider) getApplication(); mTopic = getAttribute("topic"); + + mNotifier = ((ProvidesNotificationService) getApplication()).getNotificationService(); } /** @@ -86,7 +92,7 @@ public class TopicResource extends ServerResource { try { // Deserialize the incoming message. JacksonRepresentation<MessageThread> jsonRep = - new JacksonRepresentation<MessageThread>(entity, MessageThread.class); + new JacksonRepresentation<>(entity, MessageThread.class); // Get the message from the request. // Throw away the wrapping MessageThread because we'll create our own later. @@ -105,6 +111,11 @@ public class TopicResource extends ServerResource { mBackend.getThreadProvider().put(mTopic, newThread.getId(), newThread); + // Send a notification email + mNotifier.sendNotification( + String.format("A new question was posted on the %s topic:\n\n%s", mTopic, message.getMessage())); + + setLocationRef(mTopic + "/" + newThread.getId()); return new JacksonRepresentation(newThread); |