/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.juick.server; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author ugnich */ public class PushQueries { private static final Logger logger = Logger.getLogger(PushQueries.class.getName()); public static String getAndroidRegID(Connection sql, int uid) { return SQLHelpers.getString(sql, "SELECT regid FROM android WHERE user_id=?", uid); } public static List getAndroidSubscribers(Connection sql, int uid) { List regids = new ArrayList<>(); PreparedStatement stmt = null; ResultSet rs = null; try { stmt = sql.prepareStatement("SELECT regid FROM android INNER JOIN subscr_users ON (subscr_users.user_id=? AND android.user_id=subscr_users.suser_id)"); stmt.setInt(1, uid); rs = stmt.executeQuery(); rs.beforeFirst(); while (rs.next()) { regids.add(rs.getString(1)); } } catch (SQLException e) { logger.log(Level.SEVERE, "sql exception", e); } finally { Utils.finishSQL(rs, stmt); } return regids; } public static String getWinPhoneURL(Connection sql, int uid) { return SQLHelpers.getString(sql, "SELECT url FROM winphone WHERE user_id=?", uid); } public static List getWinPhoneSubscribers(Connection sql, int uid) { List urls = new ArrayList<>(); PreparedStatement stmt = null; ResultSet rs = null; try { stmt = sql.prepareStatement("SELECT url FROM winphone INNER JOIN subscr_users ON (subscr_users.user_id=? AND winphone.user_id=subscr_users.suser_id)"); stmt.setInt(1, uid); rs = stmt.executeQuery(); rs.beforeFirst(); while (rs.next()) { urls.add(rs.getString(1)); } } catch (SQLException e) { logger.log(Level.SEVERE, "sql exception", e); } finally { Utils.finishSQL(rs, stmt); } return urls; } public static String getAPNSToken(Connection sql, int uid) { return SQLHelpers.getString(sql, "SELECT token from ios WHERE user_id=?", uid); } public static List getAPNSSubscribers(Connection sql, int uid) { List urls = new ArrayList<>(); PreparedStatement stmt = null; ResultSet rs = null; try { stmt = sql.prepareStatement("SELECT token FROM ios INNER JOIN subscr_users ON (subscr_users.user_id=? AND ios.user_id=subscr_users.suser_id)"); stmt.setInt(1, uid); rs = stmt.executeQuery(); rs.beforeFirst(); while (rs.next()) { urls.add(rs.getString(1)); } } catch (SQLException e) { logger.log(Level.SEVERE, "sql exception", e); } finally { Utils.finishSQL(rs, stmt); } return urls; } }