diff options
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 | 17 |
2 files changed, 15 insertions, 7 deletions
diff --git a/src/com/p4square/grow/backend/feed/ThreadResource.java b/src/com/p4square/grow/backend/feed/ThreadResource.java index c0604a8..e8f46c2 100644 --- a/src/com/p4square/grow/backend/feed/ThreadResource.java +++ b/src/com/p4square/grow/backend/feed/ThreadResource.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; @@ -68,7 +67,7 @@ public class ThreadResource extends ServerResource { } /** - * POST a new thread to the topic. + * POST a new message to the thread. */ @Override protected Representation post(Representation entity) { @@ -86,7 +85,7 @@ public class ThreadResource extends ServerResource { // Force the thread id and message to be what we expect. message.setThreadId(mThreadId); - message.setId(String.format("%x-%s", System.currentTimeMillis(), UUID.randomUUID().toString())); + message.setId(Message.generateId()); if (message.getCreated() == null) { message.setCreated(new Date()); 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); |