aboutsummaryrefslogtreecommitdiff
path: root/server-core/src/main/java/com/juick/service/CrosspostServiceImpl.java
diff options
context:
space:
mode:
authorGravatar Alexander Alexeev2016-11-13 23:45:32 +0700
committerGravatar Alexander Alexeev2016-11-13 23:45:32 +0700
commit590c650f8ac3478b31fd3fd3382c9b35284844b7 (patch)
tree950de6ee245ba45aba1b1f147ec475ac921ab291 /server-core/src/main/java/com/juick/service/CrosspostServiceImpl.java
parente20ab1d1f26d18211004ee8d1b64eea51d790253 (diff)
jdbc service (repository) layer is added
Diffstat (limited to 'server-core/src/main/java/com/juick/service/CrosspostServiceImpl.java')
-rw-r--r--server-core/src/main/java/com/juick/service/CrosspostServiceImpl.java89
1 files changed, 89 insertions, 0 deletions
diff --git a/server-core/src/main/java/com/juick/service/CrosspostServiceImpl.java b/server-core/src/main/java/com/juick/service/CrosspostServiceImpl.java
new file mode 100644
index 00000000..6c6f7442
--- /dev/null
+++ b/server-core/src/main/java/com/juick/service/CrosspostServiceImpl.java
@@ -0,0 +1,89 @@
+package com.juick.service;
+
+import com.juick.server.helpers.ApplicationStatus;
+import org.apache.commons.lang3.tuple.Pair;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * Created by aalexeev on 11/13/16.
+ */
+@Repository
+public class CrosspostServiceImpl extends BaseJdbcDao implements CrosspostService {
+
+ @Transactional(readOnly = true)
+ @Override
+ public Optional<Pair<String, String>> getTwitterTokens(final int uid) {
+ List<Optional<Pair<String, String>>> list = getJdbcTemplate().query(
+ "SELECT access_token,access_token_secret FROM twitter WHERE user_id = ? AND crosspost = 1",
+ (rs, num) -> Optional.of(Pair.of(rs.getString(1), rs.getString(2))),
+ uid);
+
+ return list.isEmpty() ?
+ Optional.empty() : list.get(0);
+ }
+
+ @Override
+ public Optional<String> getFacebookToken(final int uid) {
+ List<String> list = getJdbcTemplate().queryForList(
+ "SELECT access_token FROM facebook WHERE user_id = ? AND access_token IS NOT NULL AND crosspost = 1",
+ String.class,
+ uid);
+ return list.isEmpty() ?
+ Optional.empty() : Optional.of(list.get(0));
+ }
+
+ @Override
+ public ApplicationStatus getFbCrossPostStatus(final int uid) {
+ List<ApplicationStatus> list = getJdbcTemplate().query(
+ "SELECT 1, crosspost FROM facebook WHERE user_id = ? LIMIT 1",
+ (rs, num) -> {
+ ApplicationStatus status = new ApplicationStatus();
+
+ status.setConnected(rs.getInt(1) > 0);
+ status.setCrosspostEnabled(rs.getBoolean(2));
+
+ return status;
+ },
+ uid);
+
+ return list.isEmpty() ?
+ new ApplicationStatus() : list.get(0);
+ }
+
+ @Override
+ public String getTwitterName(final int uid) {
+ List<String> list = getJdbcTemplate().queryForList(
+ "SELECT uname FROM twitter WHERE user_id = ?",
+ String.class,
+ uid);
+
+ return list.isEmpty() ?
+ "" : list.get(0);
+ }
+
+ @Override
+ public String getTelegramName(final int uid) {
+ List<String> list = getJdbcTemplate().queryForList(
+ "SELECT tg_name FROM telegram WHERE user_id = ?",
+ String.class,
+ uid);
+
+ return list.isEmpty() ?
+ "" : list.get(0);
+ }
+
+ @Override
+ public Optional<Pair<String, String>> getVkTokens(final int uid) {
+ 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);
+
+ return list.isEmpty() ?
+ Optional.empty() : list.get(0);
+ }
+}