aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-11-20 19:07:59 +0300
committerGravatar Vitaly Takmazov2018-11-20 19:07:59 +0300
commitb6bb0dc8a3391442fad0124baa12799982cd6d8d (patch)
tree664a6bdbc76cbc2219eb4c67f8aca875d83fccc0
parent6d4f8164ac97690a1993981605435cdc6ff097f2 (diff)
fix api avatar urls
-rw-r--r--src/main/java/com/juick/server/XMPPConnection.java2
-rw-r--r--src/main/java/com/juick/server/api/Messages.java10
-rw-r--r--src/main/java/com/juick/server/api/PM.java4
-rw-r--r--src/main/java/com/juick/server/api/Users.java12
-rw-r--r--src/main/java/com/juick/server/api/activity/Profile.java6
-rw-r--r--src/main/java/com/juick/server/api/rss/MessagesView.java2
-rw-r--r--src/main/java/com/juick/server/www/WebApp.java12
7 files changed, 28 insertions, 20 deletions
diff --git a/src/main/java/com/juick/server/XMPPConnection.java b/src/main/java/com/juick/server/XMPPConnection.java
index 444e2512..44cc4a30 100644
--- a/src/main/java/com/juick/server/XMPPConnection.java
+++ b/src/main/java/com/juick/server/XMPPConnection.java
@@ -173,7 +173,7 @@ public class XMPPConnection implements StanzaListener, NotificationListener {
userVCard.setFormattedName(info.getFullName());
userVCard.setNickname(user.getName());
try {
- userVCard.setPhoto(new VCard.Image(URI.create(webApp.getAvatarWebPath(user))));
+ userVCard.setPhoto(new VCard.Image(URI.create(webApp.getAvatarUrl(user))));
if (info.getUrl() != null) {
userVCard.setUrl(new URL(info.getUrl()));
}
diff --git a/src/main/java/com/juick/server/api/Messages.java b/src/main/java/com/juick/server/api/Messages.java
index 4ce1ea13..e105890f 100644
--- a/src/main/java/com/juick/server/api/Messages.java
+++ b/src/main/java/com/juick/server/api/Messages.java
@@ -78,7 +78,7 @@ public class Messages {
int vuid = visitor.getUid();
List<Integer> mids = messagesService.getMyFeed(vuid, before_mid, true);
List<Message> msgs = messagesService.getMessages(visitor, mids);
- msgs.forEach(m -> m.getUser().setAvatar(webApp.getAvatarWebPath(m.getUser())));
+ msgs.forEach(m -> m.getUser().setAvatar(webApp.getAvatarUrl(m.getUser())));
return ResponseEntity.ok(msgs);
}
return FORBIDDEN;
@@ -141,7 +141,7 @@ public class Messages {
}
}
List<Message> msgs = messagesService.getMessages(visitor, mids);
- msgs.forEach(m -> m.getUser().setAvatar(webApp.getAvatarWebPath(m.getUser())));
+ msgs.forEach(m -> m.getUser().setAvatar(webApp.getAvatarUrl(m.getUser())));
return ResponseEntity.ok(msgs);
}
@DeleteMapping("/api/messages")
@@ -161,7 +161,7 @@ public class Messages {
public List<Message> getDiscussions(
@RequestParam(required = false, defaultValue = "0") Long to) {
List<Message> msgs = messagesService.getMessages(UserUtils.getCurrentUser(), messagesService.getDiscussions(UserUtils.getCurrentUser().getUid(), to));
- msgs.forEach(m -> m.getUser().setAvatar(webApp.getAvatarWebPath(m.getUser())));
+ msgs.forEach(m -> m.getUser().setAvatar(webApp.getAvatarUrl(m.getUser())));
return msgs;
}
@GetMapping("/api/thread")
@@ -177,10 +177,10 @@ public class Messages {
if (userService.getUserByName(msg.getUser().getName()).isBanned()) {
throw new HttpNotFoundException();
}
- msg.getUser().setAvatar(webApp.getAvatarWebPath(msg.getUser()));
+ msg.getUser().setAvatar(webApp.getAvatarUrl(msg.getUser()));
msg.setRecommendations(new HashSet<>(messagesService.getMessageRecommendations(msg.getMid())));
List<com.juick.Message> replies = messagesService.getReplies(visitor, mid);
- replies.forEach(m -> m.getUser().setAvatar(webApp.getAvatarWebPath(m.getUser())));
+ replies.forEach(m -> m.getUser().setAvatar(webApp.getAvatarUrl(m.getUser())));
if (!visitor.isAnonymous()) {
userService.updateLastSeen(visitor);
applicationEventPublisher.publishEvent(
diff --git a/src/main/java/com/juick/server/api/PM.java b/src/main/java/com/juick/server/api/PM.java
index 05f46d8d..a80ad0dc 100644
--- a/src/main/java/com/juick/server/api/PM.java
+++ b/src/main/java/com/juick/server/api/PM.java
@@ -69,7 +69,7 @@ public class PM {
}
List<Message> msgs = pmQueriesService.getPMMessages(visitor.getUid(), uid);
- msgs.forEach(m -> m.getUser().setAvatar(webApp.getAvatarWebPath(m.getUser())));
+ msgs.forEach(m -> m.getUser().setAvatar(webApp.getAvatarUrl(m.getUser())));
return msgs;
}
@@ -115,7 +115,7 @@ public class PM {
// TODO: ignore cnt param for now but make sure paging param will not be cnt
List<Chat> lastconv = pmQueriesService.getLastChats(visitor);
- lastconv.forEach(c -> c.setAvatar(webApp.getAvatarWebPath(c)));
+ lastconv.forEach(c -> c.setAvatar(webApp.getAvatarUrl(c)));
PrivateChats pms = new PrivateChats();
pms.setUsers(lastconv);
return pms;
diff --git a/src/main/java/com/juick/server/api/Users.java b/src/main/java/com/juick/server/api/Users.java
index c1cee8b5..6f9ab290 100644
--- a/src/main/java/com/juick/server/api/Users.java
+++ b/src/main/java/com/juick/server/api/Users.java
@@ -69,12 +69,12 @@ public class Users {
if (!unames.isEmpty() && unames.size() < 20)
users.addAll(userService.getUsersByName(unames));
}
- users.forEach(u -> u.setAvatar(webApp.getAvatarWebPath(u)));
+ users.forEach(u -> u.setAvatar(webApp.getAvatarUrl(u)));
if (!users.isEmpty())
return users;
if (!UserUtils.getCurrentUser().isAnonymous()) {
User visitor = UserUtils.getCurrentUser();
- visitor.setAvatar(webApp.getAvatarWebPath(visitor));
+ visitor.setAvatar(webApp.getAvatarUrl(visitor));
return Collections.singletonList(visitor);
}
@@ -93,7 +93,7 @@ public class Users {
me.setUnreadCount(unread.size());
me.setRead(userService.getUserFriends(visitor.getUid()));
me.setReaders(userService.getUserReaders(visitor.getUid()));
- me.setAvatar(webApp.getAvatarWebPath(visitor));
+ me.setAvatar(webApp.getAvatarUrl(visitor));
return me;
}
@@ -118,7 +118,7 @@ public class Users {
if (uid > 0) {
List<User> friends = userService.getUserFriends(uid);
- friends.forEach(f -> f.setAvatar(webApp.getAvatarWebPath(f)));
+ friends.forEach(f -> f.setAvatar(webApp.getAvatarUrl(f)));
return friends;
}
throw new HttpNotFoundException();
@@ -145,7 +145,7 @@ public class Users {
if (uid > 0) {
List<User> readers = userService.getUserReaders(uid);
- readers.forEach(r -> r.setAvatar(webApp.getAvatarWebPath(r)));
+ readers.forEach(r -> r.setAvatar(webApp.getAvatarUrl(r)));
return readers;
}
throw new HttpNotFoundException();
@@ -155,7 +155,7 @@ public class Users {
public UserInfo getUserInfo(@PathVariable String uname) {
User user = userService.getUserByName(uname);
if (!user.isBanned()) {
- user.setAvatar(webApp.getAvatarWebPath(user));
+ user.setAvatar(webApp.getAvatarUrl(user));
return userService.getUserInfo(user);
}
throw new HttpNotFoundException();
diff --git a/src/main/java/com/juick/server/api/activity/Profile.java b/src/main/java/com/juick/server/api/activity/Profile.java
index 979f6265..d8a8fd90 100644
--- a/src/main/java/com/juick/server/api/activity/Profile.java
+++ b/src/main/java/com/juick/server/api/activity/Profile.java
@@ -78,8 +78,6 @@ public class Profile {
private String domain;
@Value("${ap_base_uri:http://localhost:8080/}")
private String baseUri;
- @Value("${img_url:http://localhost:8080/i/}")
- private String baseImagesUri;
@Inject
private ObjectMapper jsonMapper;
@Inject
@@ -103,10 +101,8 @@ public class Profile {
person.setOutbox(activityPubManager.outboxUri(user));
person.setFollowers(activityPubManager.followersUri(user));
person.setFollowing(activityPubManager.followingUri(user));
- UriComponentsBuilder image = UriComponentsBuilder.fromUriString(baseImagesUri);
- image.path(webApp.getAvatarWebPath(user));
Image avatar = new Image();
- avatar.setUrl(image.toUriString());
+ avatar.setUrl(webApp.getAvatarUrl(user));
avatar.setMediaType("image/png");
person.setIcon(avatar);
return (Person) Context.build(person);
diff --git a/src/main/java/com/juick/server/api/rss/MessagesView.java b/src/main/java/com/juick/server/api/rss/MessagesView.java
index 2dd9f53b..05bc0bd6 100644
--- a/src/main/java/com/juick/server/api/rss/MessagesView.java
+++ b/src/main/java/com/juick/server/api/rss/MessagesView.java
@@ -87,7 +87,7 @@ public class MessagesView extends AbstractRssFeedView {
String link = String.format("http://juick.com/%s/", user.getName());
feed.setLink(link);
Image rssImage = new Image();
- rssImage.setUrl(webApp.getAvatarWebPath(user));
+ rssImage.setUrl(webApp.getAvatarUrl(user));
rssImage.setTitle(title);
rssImage.setLink(link);
feed.setImage(rssImage);
diff --git a/src/main/java/com/juick/server/www/WebApp.java b/src/main/java/com/juick/server/www/WebApp.java
index 08c6188d..7282eeeb 100644
--- a/src/main/java/com/juick/server/www/WebApp.java
+++ b/src/main/java/com/juick/server/www/WebApp.java
@@ -25,6 +25,7 @@ import org.springframework.stereotype.Component;
import org.springframework.web.servlet.resource.ResourceUrlProvider;
import org.springframework.web.util.UriComponentsBuilder;
+import javax.annotation.PostConstruct;
import javax.inject.Inject;
import java.util.ArrayList;
import java.util.Arrays;
@@ -43,6 +44,12 @@ public class WebApp {
private ResourceUrlProvider resourceUrlProvider;
@Value("${img_url:http://localhost:8080/i/}")
private String baseImagesUri;
+ UriComponentsBuilder avatarBuilder;
+
+ @PostConstruct
+ public void init() {
+ avatarBuilder = UriComponentsBuilder.fromUriString(baseImagesUri);
+ }
public List<Tag> parseTags(String tagsStr) {
List<Tag> tags = new ArrayList<>();
@@ -79,4 +86,9 @@ public class WebApp {
}
return resourceUrlProvider.getForLookupPath("/av-96.png");
}
+
+ public String getAvatarUrl(User user) {
+ avatarBuilder.replacePath(getAvatarWebPath(user));
+ return avatarBuilder.build().toUriString();
+ }
}