aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src/main/java/com/juick/server/api/activity/Profile.java
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-09-05 11:37:28 +0300
committerGravatar Vitaly Takmazov2018-09-05 11:37:28 +0300
commitd90272c4a880cc7644fb168c41cec4e90801ff03 (patch)
tree53c00e90df59f972f492a334bfce80b20044e95a /juick-server/src/main/java/com/juick/server/api/activity/Profile.java
parent58d8dd35de41d3e567a2d00765784e2bab39ddcd (diff)
ActivityStreams: separate endpoints for outbox and outbox pages
Diffstat (limited to 'juick-server/src/main/java/com/juick/server/api/activity/Profile.java')
-rw-r--r--juick-server/src/main/java/com/juick/server/api/activity/Profile.java42
1 files changed, 29 insertions, 13 deletions
diff --git a/juick-server/src/main/java/com/juick/server/api/activity/Profile.java b/juick-server/src/main/java/com/juick/server/api/activity/Profile.java
index 4a44db3b..0b8db1fc 100644
--- a/juick-server/src/main/java/com/juick/server/api/activity/Profile.java
+++ b/juick-server/src/main/java/com/juick/server/api/activity/Profile.java
@@ -55,40 +55,56 @@ public class Profile {
}
throw new HttpNotFoundException();
}
- @GetMapping(value = "/u/{userName}/blog", produces = ActivityObject.CONTENT_TYPE)
- public OrderedCollection getOutbox(
- @PathVariable String userName,
- @RequestParam(required = false, defaultValue = "0") int before) {
+ @GetMapping(value = "/u/{userName}/blog/toc", produces = ActivityObject.CONTENT_TYPE)
+ public OrderedCollection getOutbox(@PathVariable String userName) {
User visitor = UserUtils.getCurrentUser();
User user = userService.getUserByName(userName);
if (!user.isAnonymous()) {
ServletUriComponentsBuilder uriComponentsBuilder = ServletUriComponentsBuilder.fromCurrentRequestUri();
OrderedCollection blog = new OrderedCollection();
blog.setId(uriComponentsBuilder.toUriString());
+ blog.setTotalItems(userService.getStatsMessages(user.getUid()));
+ Link first = new Link();
+ uriComponentsBuilder.path(String.format("/u/%s/blog", userName));
+ first.setHref(uriComponentsBuilder.toUriString());
+ blog.setFirst(first);
+ return blog;
+ }
+ throw new HttpNotFoundException();
+ }
+ @GetMapping(value = "/u/{userName}/blog", produces = ActivityObject.CONTENT_TYPE)
+ public OrderedCollectionPage getOutboxPage(@PathVariable String userName,
+ @RequestParam(required = false, defaultValue = "0") int before) {
+ User visitor = UserUtils.getCurrentUser();
+ User user = userService.getUserByName(userName);
+ if (!user.isAnonymous()) {
+ ServletUriComponentsBuilder uriComponentsBuilder = ServletUriComponentsBuilder.fromCurrentRequestUri();
List<Integer> mids = messagesService.getUserBlog(user.getUid(), 0, before);
List<Article> articles = messagesService.getMessages(visitor, mids).stream().map(m -> {
- Article article = new Article();
- article.setContent(m.getText());
- return article;
+ Article article = new Article();
+ article.setPublished(m.getTimestamp());
+ article.setContent(m.getText());
+ return article;
}).collect(Collectors.toList());
- OrderedCollectionPage first = new OrderedCollectionPage();
- first.setId(uriComponentsBuilder.toUriString());
Person person = new Person();
person.setName(user.getName());
- first.setOrderedItems(articles.stream().map(a -> {
+ OrderedCollectionPage page = new OrderedCollectionPage();
+ page.setOrderedItems(articles.stream().map(a -> {
Create create = new Create();
create.setActor(person);
create.setObject(a);
+ create.setPublished(a.getPublished());
return create;
}).collect(Collectors.toList()));
int beforeNext = mids.stream().reduce((fst, second) -> second).orElse(0);
if (beforeNext > 0) {
Link next = new Link();
next.setHref(uriComponentsBuilder.queryParam("before", beforeNext).toUriString());
- first.setNext(next);
+ page.setNext(next);
}
- blog.setFirst(first);
- return blog;
+
+ page.setId(uriComponentsBuilder.toUriString());
+ return page;
}
throw new HttpNotFoundException();
}