From cd6150df90a6ab86f20221c61c58c6864dc408fc Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Wed, 26 Apr 2023 10:10:46 +0300 Subject: Expose 'vip' and 'ignored' user lists over '/me' API endpoint --- src/main/java/com/juick/service/PostgresSearchService.java | 2 +- src/main/java/com/juick/service/SphinxSearchService.java | 2 +- src/main/java/com/juick/service/UserService.java | 3 ++- src/main/java/com/juick/service/UserServiceImpl.java | 14 +++++++++++++- 4 files changed, 17 insertions(+), 4 deletions(-) (limited to 'src/main/java/com/juick/service') diff --git a/src/main/java/com/juick/service/PostgresSearchService.java b/src/main/java/com/juick/service/PostgresSearchService.java index 79986670..a243b3f3 100644 --- a/src/main/java/com/juick/service/PostgresSearchService.java +++ b/src/main/java/com/juick/service/PostgresSearchService.java @@ -61,7 +61,7 @@ public class PostgresSearchService extends BaseJdbcService implements SearchServ public List search(final int visitorId, final int userId, final String searchString, final int page) { - var usersFilter = userService.getUserBLUsers(visitorId).stream().map(User::getUid).toList(); + var usersFilter = userService.getUserIgnoredUsers(visitorId).stream().map(User::getUid).toList(); var offset = page * maxResult; var query = escapeQuery(searchString); var isOneWord = query.split("[^\\S\\+]+").length == 1; diff --git a/src/main/java/com/juick/service/SphinxSearchService.java b/src/main/java/com/juick/service/SphinxSearchService.java index 3775d09f..8a608b44 100644 --- a/src/main/java/com/juick/service/SphinxSearchService.java +++ b/src/main/java/com/juick/service/SphinxSearchService.java @@ -60,7 +60,7 @@ public class SphinxSearchService extends BaseJdbcService implements SearchServic sphinxQuery.put("limit", String.valueOf(maxResult)); sphinxQuery.put("mode", "any"); sphinxQuery.put("sort", sortHint(WebUtils.encodeSphinx(searchString))); - String usersFilter = userService.getUserBLUsers(visitor.getUid()).stream().map(u -> String.valueOf(u.getUid())).collect(Collectors.joining(",")); + String usersFilter = userService.getUserIgnoredUsers(visitor.getUid()).stream().map(u -> String.valueOf(u.getUid())).collect(Collectors.joining(",")); sphinxQuery.put("!filter", "user_id," + usersFilter); if (page > 0) { sphinxQuery.put("offset", String.valueOf(page * maxResult)); diff --git a/src/main/java/com/juick/service/UserService.java b/src/main/java/com/juick/service/UserService.java index 0cbe104f..fe5ce23f 100644 --- a/src/main/java/com/juick/service/UserService.java +++ b/src/main/java/com/juick/service/UserService.java @@ -99,7 +99,8 @@ public interface UserService { List getUserFriends(int uid); - List getUserBLUsers(int uid); + List getUserIgnoredUsers(int uid); + List getUserVipUsers(int uid); @CacheEvict(value = "twitter_user", key="{ #user.getUid() }") boolean linkTwitterAccount(User user, String accessToken, String accessTokenSecret, String screenName); diff --git a/src/main/java/com/juick/service/UserServiceImpl.java b/src/main/java/com/juick/service/UserServiceImpl.java index 442bd03c..c586886b 100644 --- a/src/main/java/com/juick/service/UserServiceImpl.java +++ b/src/main/java/com/juick/service/UserServiceImpl.java @@ -497,7 +497,7 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { @Transactional(readOnly = true) @Override - public List getUserBLUsers(final int uid) { + public List getUserIgnoredUsers(final int uid) { return getJdbcTemplate().query("SELECT users.id,users.nick FROM users INNER JOIN bl_users " + "ON(bl_users.bl_user_id=users.id) WHERE bl_users.user_id=? ORDER BY users.nick", (rs, num) -> { @@ -507,6 +507,18 @@ public class UserServiceImpl extends BaseJdbcService implements UserService { return u; }, uid); } + @Transactional(readOnly = true) + @Override + public List getUserVipUsers(final int uid) { + return getJdbcTemplate().query("SELECT users.id,users.nick FROM users INNER JOIN wl_users " + + "ON(wl_users.wl_user_id=users.id) WHERE wl_users.user_id=? ORDER BY users.nick", + (rs, num) -> { + User u = new User(); + u.setUid(rs.getInt(1)); + u.setName(rs.getString(2)); + return u; + }, uid); + } @Transactional @Override -- cgit v1.2.3