/* * 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 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 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 getAndroidTokens(JdbcTemplate sql, List 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 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 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 getWindowsTokens(JdbcTemplate sql, List 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 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 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 getAPNSTokens(JdbcTemplate sql, List 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); } }