diff options
author | Vitaly Takmazov | 2016-07-07 11:38:54 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2016-07-07 11:38:54 +0300 |
commit | b1c9bbe04e6300f5bbb9d0015987c4b18dfb2d09 (patch) | |
tree | 83e4f4a05bae0588e4692a32ee82726c365fd59e /src/main/java/com/juick/server/PushQueries.java | |
parent | fe8cf8c0093bbbfb053f52a53daea9145705b62e (diff) | |
parent | a0d038f5e6aa28ef67162c591abe64d057a19fa5 (diff) |
merge server
Diffstat (limited to 'src/main/java/com/juick/server/PushQueries.java')
-rw-r--r-- | src/main/java/com/juick/server/PushQueries.java | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/src/main/java/com/juick/server/PushQueries.java b/src/main/java/com/juick/server/PushQueries.java new file mode 100644 index 00000000..54528993 --- /dev/null +++ b/src/main/java/com/juick/server/PushQueries.java @@ -0,0 +1,74 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.juick.server; + +import org.springframework.dao.EmptyResultDataAccessException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.util.StringUtils; + +import java.util.List; +import java.util.Optional; + +/** + * + * @author ugnich + */ +public class PushQueries { + + public static Optional<String> getAndroidRegID(JdbcTemplate sql, int uid) { + try { + return Optional.of(sql.queryForObject("SELECT regid FROM android WHERE user_id=?", String.class, uid)); + } catch (EmptyResultDataAccessException e) { + return Optional.empty(); + } + + } + + public static List<String> getAndroidSubscribers(JdbcTemplate sql, int uid) { + return sql.queryForList("SELECT regid FROM android INNER JOIN subscr_users " + + "ON (subscr_users.user_id=? AND android.user_id=subscr_users.suser_id)", String.class, uid); + } + + public static List<String> getAndroidTokens(JdbcTemplate sql, List<Integer> uids) { + return sql.queryForList("SELECT regid FROM android INNER JOIN users " + + "ON (users.id=android.user_id) WHERE users.id IN (" + StringUtils.collectionToCommaDelimitedString(uids) + ")", String.class); + } + + public static Optional<String> getWinPhoneURL(JdbcTemplate sql, int uid) { + try { + return Optional.of(sql.queryForObject("SELECT url FROM winphone WHERE user_id=?", String.class, uid)); + } catch (EmptyResultDataAccessException e) { + return Optional.empty(); + } + } + + public static List<String> getWinPhoneSubscribers(JdbcTemplate sql, int uid) { + return sql.queryForList("SELECT url FROM winphone INNER JOIN subscr_users " + + "ON (subscr_users.user_id=? AND winphone.user_id=subscr_users.suser_id)", String.class, uid); + } + + public static List<String> getWindowsTokens(JdbcTemplate sql, List<Integer> uids) { + return sql.queryForList("SELECT url FROM winphone INNER JOIN users " + + "ON (users.id=winphone.user_id) WHERE users.id IN (" + StringUtils.collectionToCommaDelimitedString(uids) + ")", String.class); + } + + public static Optional<String> getAPNSToken(JdbcTemplate sql, int uid) { + try { + return Optional.of(sql.queryForObject("SELECT token from ios WHERE user_id=?", String.class, uid)); + } catch (EmptyResultDataAccessException e) { + return Optional.empty(); + } + } + + public static List<String> getAPNSSubscribers(JdbcTemplate sql, int uid) { + return sql.queryForList("SELECT token FROM ios INNER JOIN subscr_users " + + "ON (subscr_users.user_id=? AND ios.user_id=subscr_users.suser_id)", String.class, uid); + } + public static List<String> getAPNSTokens(JdbcTemplate sql, List<Integer> uids) { + return sql.queryForList("SELECT token FROM ios INNER JOIN users " + + "ON (users.id=ios.user_id) WHERE users.id IN (" + StringUtils.collectionToCommaDelimitedString(uids) + ")", String.class); + } + +} |