aboutsummaryrefslogtreecommitdiff
path: root/juick-server/src/main/java/com/juick/service/CrosspostServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-server/src/main/java/com/juick/service/CrosspostServiceImpl.java')
-rw-r--r--juick-server/src/main/java/com/juick/service/CrosspostServiceImpl.java84
1 files changed, 40 insertions, 44 deletions
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<ExternalToken> getTwitterToken(final int uid) {
+ public Optional<ExternalToken> getTwitterToken(final User user) {
List<ExternalToken> 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<Pair<String, String>> getFacebookTokens(final int uid) {
+ public Optional<Pair<String, String>> getFacebookTokens(final User user) {
List<Optional<Pair<String, String>>> 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<ApplicationStatus> 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<String> 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<String> 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<Pair<String, String>> getVkTokens(final int uid) {
+ public Optional<Pair<String, String>> getVkTokens(final User user) {
List<Optional<Pair<String, String>>> 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<User> 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<User> 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;
}
}