public boolean deleteToken(String... tokens) { String query = deleteToken + makeQuestionMarks(tokens.length); try (Connection connection = ds.getConnection(); PreparedStatement statement = connection.prepareStatement(query)) { for (int i = 1; i <= tokens.length; i++) { statement.setString(i, tokens[i - 1]); } statement.executeUpdate(); connection.commit(); return true; } catch (Exception e) { log.error("Error deleting token host. Reason : {}", e.getMessage()); } return false; }
public String getServerByToken(String token) { if (isDBEnabled()) { return forwardingTokenDBDao.selectHostByToken(token); } return null; }
private static void process(DBManager dbManager, String region, String ip) throws Exception { System.out.println("Reading all users from region : " + region + ". Forward to " + ip); ConcurrentMap<UserKey, User> users = dbManager.userDBDao.getAllUsers(region); System.out.println("Read " + users.size() + " users."); int count = 0; List<ForwardingTokenEntry> entryList = new ArrayList<>(1100); for (User user : users.values()) { for (DashBoard dashBoard : user.profile.dashBoards) { for (Device device : dashBoard.devices) { if (device != null && device.token != null) { count++; entryList.add(new ForwardingTokenEntry(device.token, ip, user.email, dashBoard.id, device.id)); } } } if (entryList.size() > 1000) { dbManager.forwardingTokenDBDao.insertTokenHostBatch(entryList); System.out.println(entryList.size() + " tokens inserted."); entryList = new ArrayList<>(1100); } } if (entryList.size() > 0) { dbManager.forwardingTokenDBDao.insertTokenHostBatch(entryList); System.out.println(entryList.size() + " tokens inserted."); } System.out.println("Total entries : " + count); }
public void assignServerToToken(String token, String serverIp, String email, int dashId, int deviceId) { if (isDBEnabled()) { blockingIOProcessor.executeDB(() -> forwardingTokenDBDao.insertTokenHost(token, serverIp, email, dashId, deviceId)); } }
public void removeToken(String... tokens) { if (isDBEnabled() && tokens.length > 0) { blockingIOProcessor.executeDB(() -> forwardingTokenDBDao.deleteToken(tokens)); } }
public DBManager(String propsFilename, BlockingIOProcessor blockingIOProcessor, boolean isEnabled) { this.blockingIOProcessor = blockingIOProcessor; DBProperties dbProperties = new DBProperties(propsFilename); if (!isEnabled || dbProperties.size() == 0) { log.info("Separate DB storage disabled."); this.ds = null; return; } HikariConfig config = initConfig(dbProperties); log.info("DB url : {}", config.getJdbcUrl()); log.info("DB user : {}", config.getUsername()); log.info("Connecting to DB..."); HikariDataSource hikariDataSource; try { hikariDataSource = new HikariDataSource(config); } catch (Exception e) { log.error("Not able connect to DB. Skipping. Reason : {}", e.getMessage()); this.ds = null; return; } this.ds = hikariDataSource; this.userDBDao = new UserDBDao(hikariDataSource); this.redeemDBDao = new RedeemDBDao(hikariDataSource); this.purchaseDBDao = new PurchaseDBDao(hikariDataSource); this.flashedTokensDBDao = new FlashedTokensDBDao(hikariDataSource); this.cloneProjectDBDao = new CloneProjectDBDao(hikariDataSource); this.forwardingTokenDBDao = new ForwardingTokenDBDao(hikariDataSource); checkDBVersion(); log.info("Connected to database successfully."); }