summaryrefslogtreecommitdiff
path: root/src/main/java/com/p4square/grow/backend/feed
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2017-09-03 21:44:16 -0700
committerJesse Morgan <jesse@jesterpm.net>2017-09-03 21:48:53 -0700
commit72ee0f10ddca0d880e50d13446f9ac0269e542eb (patch)
tree9dc1bfe0e4300ab05fb3ac1cd44dac6c44b71c18 /src/main/java/com/p4square/grow/backend/feed
parentfa7d0ec7d486dccb55c50ba635a638a855a513c1 (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.java10
-rw-r--r--src/main/java/com/p4square/grow/backend/feed/TopicResource.java13
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);