From 8a0fbbd35c13054a947ea0d27ca117542bc452b9 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 18 May 2018 15:33:38 +0300 Subject: JPA WIP --- .../com/juick/service/CrosspostServiceImpl.java | 84 +++++++++++----------- 1 file changed, 40 insertions(+), 44 deletions(-) (limited to 'juick-server/src/main/java/com/juick/service/CrosspostServiceImpl.java') diff --git a/juick-server/src/main/java/com/juick/service/CrosspostServiceImpl.java b/juick-server/src/main/java/com/juick/service/CrosspostServiceImpl.java index 14bdc7e2..e4dd50f9 100644 --- a/juick-server/src/main/java/com/juick/service/CrosspostServiceImpl.java +++ b/juick-server/src/main/java/com/juick/service/CrosspostServiceImpl.java @@ -18,6 +18,8 @@ package com.juick.service; import com.juick.ExternalToken; +import com.juick.User; +import com.juick.service.data.UsersRepository; import com.juick.server.helpers.ApplicationStatus; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; @@ -25,6 +27,7 @@ import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.stereotype.Repository; import org.springframework.transaction.annotation.Transactional; +import javax.inject.Inject; import java.util.List; import java.util.Optional; @@ -33,15 +36,17 @@ import java.util.Optional; */ @Repository public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostService { + @Inject + UsersRepository usersRepository; @Transactional(readOnly = true) @Override - public Optional getTwitterToken(final int uid) { + public Optional getTwitterToken(final User user) { List list = getJdbcTemplate().query( "SELECT uname, access_token, access_token_secret FROM twitter WHERE user_id = ? AND crosspost = 1", (rs, num) -> new ExternalToken(rs.getString(1), "twitter", rs.getString(2), rs.getString(3)), - uid); + user.getUid()); return list.isEmpty() ? Optional.empty() : Optional.of(list.get(0)); @@ -49,9 +54,9 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional @Override - public boolean deleteTwitterToken(Integer uid) { - return getJdbcTemplate().update("DELETE FROM twitter WHERE user_id=?", uid) > 0 - && getJdbcTemplate().update("DELETE FROM subscr_users WHERE user_id=? AND suser_id=1741", uid) > 0; + public boolean deleteTwitterToken(User user) { + return getJdbcTemplate().update("DELETE FROM twitter WHERE user_id=?", user.getUid()) > 0 + && getJdbcTemplate().update("DELETE FROM subscr_users WHERE user_id=? AND suser_id=1741", user.getUid()) > 0; } @Override @@ -86,18 +91,18 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional(readOnly = true) @Override - public Optional> getFacebookTokens(final int uid) { + public Optional> getFacebookTokens(final User user) { List>> list = getJdbcTemplate().query( "SELECT fb_id, access_token FROM facebook WHERE user_id = ? AND access_token IS NOT NULL AND crosspost = 1", (rs, num) -> Optional.of(Pair.of(rs.getString(1), rs.getString(2))), - uid); + user.getUid()); return list.isEmpty() ? Optional.empty() : list.get(0); } @Transactional(readOnly = true) @Override - public ApplicationStatus getFbCrossPostStatus(final int uid) { + public ApplicationStatus getFbCrossPostStatus(final User user) { List list = getJdbcTemplate().query( "SELECT 1, crosspost FROM facebook WHERE user_id = ? LIMIT 1", (rs, num) -> { @@ -108,7 +113,7 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe return status; }, - uid); + user.getUid()); return list.isEmpty() ? new ApplicationStatus() : list.get(0); @@ -116,28 +121,28 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional @Override - public boolean enableFBCrosspost(Integer uid) { - return getJdbcTemplate().update("UPDATE facebook SET crosspost=1 WHERE user_id=?", uid) > 0 + public boolean enableFBCrosspost(User user) { + return getJdbcTemplate().update("UPDATE facebook SET crosspost=1 WHERE user_id=?", user.getUid()) > 0 && getJdbcTemplate().update( "INSERT INTO subscr_users(user_id,suser_id,jid,active) VALUES (?,5863,'juick@facebook.juick.com',1)", - uid) > 0; + user.getUid()) > 0; } @Transactional @Override - public void disableFBCrosspost(Integer uid) { - getJdbcTemplate().update("UPDATE facebook SET crosspost=0 WHERE user_id=?", uid); + public void disableFBCrosspost(User user) { + getJdbcTemplate().update("UPDATE facebook SET crosspost=0 WHERE user_id=?", user.getUid()); // TODO: stop using magic numbers for system users - getJdbcTemplate().update("DELETE FROM subscr_users WHERE user_id=? AND suser_id=5863", uid); + getJdbcTemplate().update("DELETE FROM subscr_users WHERE user_id=? AND suser_id=5863", user.getUid()); } @Transactional(readOnly = true) @Override - public String getTwitterName(final int uid) { + public String getTwitterName(final User user) { List list = getJdbcTemplate().queryForList( "SELECT uname FROM twitter WHERE user_id = ?", String.class, - uid); + user.getUid()); return list.isEmpty() ? StringUtils.EMPTY : list.get(0); @@ -145,11 +150,11 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional(readOnly = true) @Override - public String getTelegramName(final int uid) { + public String getTelegramName(final User user) { List list = getJdbcTemplate().queryForList( "SELECT tg_name FROM telegram WHERE user_id = ?", String.class, - uid); + user.getUid()); return list.isEmpty() ? StringUtils.EMPTY : list.get(0); @@ -157,11 +162,11 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional(readOnly = true) @Override - public Optional> getVkTokens(final int uid) { + public Optional> getVkTokens(final User user) { List>> list = getJdbcTemplate().query( "SELECT vk_id, access_token FROM vk WHERE user_id = ? AND crosspost = 1", (rs, num) -> Optional.of(Pair.of(rs.getString(1), rs.getString(2))), - uid); + user.getUid()); return list.isEmpty() ? Optional.empty() : list.get(0); @@ -169,19 +174,14 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional @Override - public void deleteVKUser(Integer uid) { - getJdbcTemplate().update("DELETE FROM vk WHERE user_id=?", uid); + public void deleteVKUser(User user) { + getJdbcTemplate().update("DELETE FROM vk WHERE user_id=?", user.getUid()); } @Transactional(readOnly = true) @Override - public int getUIDbyFBID(long fbID) { - try { - return getJdbcTemplate().queryForObject("SELECT user_id FROM facebook WHERE fb_id=? AND user_id IS NOT NULL", - Integer.class, fbID); - } catch (EmptyResultDataAccessException e) { - return 0; - } + public Optional getUserByFBID(long fbID) { + return usersRepository.findByFacebookIds_FacebookId(fbID).map(EntityUtils::entityToUser); } @Transactional @@ -200,12 +200,8 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional(readOnly = true) @Override - public int getUIDbyVKID(long vkID) { - try { - return getJdbcTemplate().queryForObject("SELECT user_id FROM vk WHERE vk_id=? AND user_id IS NOT NULL", Integer.class, vkID); - } catch (EmptyResultDataAccessException e) { - return 0; - } + public Optional getUserByVKID(long vkID) { + return usersRepository.findByVkIds_VkId(vkID).map(EntityUtils::entityToUser); } @Transactional @@ -243,8 +239,8 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional @Override - public boolean setFacebookUser(String hash, int uid) { - return getJdbcTemplate().update("UPDATE facebook SET user_id=?,loginhash=NULL WHERE loginhash=?", uid, hash) > 0; + public boolean setFacebookUser(String hash, User user) { + return getJdbcTemplate().update("UPDATE facebook SET user_id=?,loginhash=NULL WHERE loginhash=?", user.getUid(), hash) > 0; } @Transactional @@ -260,14 +256,14 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional @Override - public boolean setVKUser(String hash, int uid) { - return getJdbcTemplate().update("UPDATE vk SET user_id=?,loginhash=NULL WHERE loginhash=?", uid, hash) > 0; + public boolean setVKUser(String hash, User user) { + return getJdbcTemplate().update("UPDATE vk SET user_id=?,loginhash=NULL WHERE loginhash=?", user.getUid(), hash) > 0; } @Transactional @Override - public boolean setTelegramUser(String hash, int uid) { - return getJdbcTemplate().update("UPDATE telegram SET user_id=?,loginhash=NULL WHERE loginhash=?", uid, hash) > 0; + public boolean setTelegramUser(String hash, User user) { + return getJdbcTemplate().update("UPDATE telegram SET user_id=?,loginhash=NULL WHERE loginhash=?", user.getUid(), hash) > 0; } @Transactional(readOnly = true) @@ -282,7 +278,7 @@ public class CrosspostServiceImpl extends BaseJdbcService implements CrosspostSe @Transactional @Override - public boolean setJIDUser(String hash, int uid) { - return getJdbcTemplate().update("UPDATE jids SET user_id=?,loginhash=NULL WHERE loginhash=?", uid, hash) > 0; + public boolean setJIDUser(String hash, User user) { + return getJdbcTemplate().update("UPDATE jids SET user_id=?,loginhash=NULL WHERE loginhash=?", user.getUid(), hash) > 0; } } -- cgit v1.2.3