private void checkDBVersion() { try { int dbVersion = userDBDao.getDBVersion(); if (dbVersion < 90500) { log.error("Current Postgres version is lower than minimum required 9.5.0 version. " + "PLEASE UPDATE YOUR DB."); } } catch (Exception e) { log.error("Error getting DB version.", e.getMessage()); } }
public String getUserServerIp(String email, String appName) { if (isDBEnabled()) { return userDBDao.getUserServerIp(email, appName); } return null; }
public void saveUsers(ArrayList<User> users) { if (isDBEnabled() && users.size() > 0) { blockingIOProcessor.executeDB(() -> userDBDao.save(users)); } }
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 deleteUser(UserKey userKey) { if (isDBEnabled() && userKey != null) { blockingIOProcessor.executeDB(() -> userDBDao.deleteUser(userKey)); } }
public ConcurrentMap<UserKey, User> getAllUsers(String region) throws Exception { ConcurrentMap<UserKey, User> users = new ConcurrentHashMap<>(); try (Connection connection = ds.getConnection(); PreparedStatement statement = connection.prepareStatement(selectAllUsers)) { statement.setString(1, region); try (ResultSet rs = statement.executeQuery()) { while (rs.next()) { User user = new User( rs.getString("email"), rs.getString("pass"), rs.getString("appName"), rs.getString("region"), rs.getString("ip"), rs.getBoolean("is_facebook_user"), rs.getBoolean("is_super_admin"), rs.getString("name"), getTs(rs, "last_modified"), getTs(rs, "last_logged"), rs.getString("last_logged_ip"), JsonParser.parseProfileFromString(rs.getString("json")), rs.getInt("energy") ); users.put(new UserKey(user), user); } connection.commit(); } } log.info("Loaded {} users.", users.size()); return users; }
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."); }
ConcurrentMap<UserKey, User> allUsers = dbManager.userDBDao.getAllUsers(serverProperties.region); this.userDao = new UserDao(allUsers, serverProperties.region, serverProperties.host); } catch (Exception e) {