diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2014-02-20 21:14:34 -0800 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2014-02-20 21:14:34 -0800 |
commit | 379c3fd79c4846b3453c1ad5195ca9b627176f06 (patch) | |
tree | 2cda81edbdd023ec3503a959d79b9861b1c13472 /src/com/p4square/grow/backend/feed | |
parent | 91f5eb337fb7223cc680582d42f2d31a906cfbca (diff) |
Added support for displaying message on Feed.
Changed MessageThread so that a thread always contains one original
message.
Added support in JsonEncodedProvider for JavaTypes in addition to
classes.
Updated communityfeed.ftl to actually display questions and answers.
Diffstat (limited to 'src/com/p4square/grow/backend/feed')
-rw-r--r-- | src/com/p4square/grow/backend/feed/ThreadResource.java | 5 | ||||
-rw-r--r-- | src/com/p4square/grow/backend/feed/TopicResource.java | 20 |
2 files changed, 23 insertions, 2 deletions
diff --git a/src/com/p4square/grow/backend/feed/ThreadResource.java b/src/com/p4square/grow/backend/feed/ThreadResource.java index 32a2f64..c0604a8 100644 --- a/src/com/p4square/grow/backend/feed/ThreadResource.java +++ b/src/com/p4square/grow/backend/feed/ThreadResource.java @@ -6,6 +6,7 @@ package com.p4square.grow.backend.feed; import java.io.IOException; +import java.util.Date; import java.util.Map; import java.util.UUID; @@ -87,6 +88,10 @@ public class ThreadResource extends ServerResource { message.setThreadId(mThreadId); message.setId(String.format("%x-%s", System.currentTimeMillis(), UUID.randomUUID().toString())); + if (message.getCreated() == null) { + message.setCreated(new Date()); + } + String collectionKey = mTopic + "/" + mThreadId; mBackend.getMessageProvider().put(collectionKey, message.getId(), message); diff --git a/src/com/p4square/grow/backend/feed/TopicResource.java b/src/com/p4square/grow/backend/feed/TopicResource.java index 0904baa..3519ca9 100644 --- a/src/com/p4square/grow/backend/feed/TopicResource.java +++ b/src/com/p4square/grow/backend/feed/TopicResource.java @@ -6,7 +6,9 @@ package com.p4square.grow.backend.feed; import java.io.IOException; +import java.util.Date; import java.util.Map; +import java.util.UUID; import org.restlet.data.Status; import org.restlet.resource.ServerResource; @@ -16,6 +18,7 @@ import org.restlet.ext.jackson.JacksonRepresentation; import org.apache.log4j.Logger; +import com.p4square.grow.model.Message; import com.p4square.grow.model.MessageThread; /** @@ -72,12 +75,25 @@ public class TopicResource extends ServerResource { } try { + // Deserialize the incoming message. + JacksonRepresentation<Message> jsonRep = new JacksonRepresentation<Message>(entity, Message.class); + Message message = jsonRep.getObject(); + if (message.getCreated() == null) { + message.setCreated(new Date()); + } + + // Create the new thread. MessageThread newThread = MessageThread.createNew(); + + // Force the thread id and message to be what we expect. + message.setId(String.format("%x-%s", System.currentTimeMillis(), UUID.randomUUID().toString())); + message.setThreadId(newThread.getId()); + newThread.setMessage(message); + mBackend.getThreadProvider().put(mTopic, newThread.getId(), newThread); - setStatus(Status.SUCCESS_NO_CONTENT); setLocationRef(mTopic + "/" + newThread.getId()); - return null; + return new JacksonRepresentation(newThread); } catch (IOException e) { LOG.error("Unexpected exception: " + e.getMessage(), e); |