summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/backend/feed/TopicResource.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/p4square/grow/backend/feed/TopicResource.java')
-rw-r--r--src/com/p4square/grow/backend/feed/TopicResource.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/com/p4square/grow/backend/feed/TopicResource.java b/src/com/p4square/grow/backend/feed/TopicResource.java
index 5826355..24b6a92 100644
--- a/src/com/p4square/grow/backend/feed/TopicResource.java
+++ b/src/com/p4square/grow/backend/feed/TopicResource.java
@@ -8,7 +8,6 @@ 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;
@@ -50,10 +49,20 @@ public class TopicResource extends ServerResource {
return new JacksonRepresentation(FeedDataProvider.TOPICS);
}
- // TODO: Support limit query parameter.
+ // Parse limit query parameter.
+ int limit = -1;
+ String limitString = getQueryValue("limit");
+ if (limitString != null) {
+ try {
+ limit = Integer.parseInt(limitString);
+ } catch (NumberFormatException e) {
+ setStatus(Status.CLIENT_ERROR_BAD_REQUEST);
+ return null;
+ }
+ }
try {
- Map<String, MessageThread> threads = mBackend.getThreadProvider().query(mTopic);
+ Map<String, MessageThread> threads = mBackend.getThreadProvider().query(mTopic, limit);
return new JacksonRepresentation(threads.values());
} catch (IOException e) {
@@ -90,7 +99,7 @@ public class TopicResource extends ServerResource {
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.setId(Message.generateId());
message.setThreadId(newThread.getId());
newThread.setMessage(message);