private Application saveApplication(Application application) throws DatastoreException { Mutator mutator = Pelops.createMutator(schemaName); mutator.writeColumns( "applications", application.getBareJid(), mutator.newColumnList( mutator.newColumn(Bytes.fromUTF8("appId"), Bytes.fromUTF8(application.getAppId())), mutator.newColumn( Bytes.fromUTF8("platformId"), Bytes.fromUTF8(application.getPlatform())), mutator.newColumn(Bytes.fromUTF8("name"), Bytes.fromUTF8(application.getName())), mutator.newColumn( Bytes.fromUTF8("accountId"), Bytes.fromUTF8(application.getAccountId())), mutator.newColumn( Bytes.fromUTF8("permissions"), Bytes.fromUTF8(application.getPermissions())))); try { mutator.execute(ConsistencyLevel.ONE); log.debug("Application [%s] stored successfully", application); } catch (Exception e) { log.error(e.getMessage(), e); throw new DatastoreException(String.format("Could not create application [%s]", application)); } return application; }
@Override public GatewayClient getClient(String jid) { log.debug("Finding client with jid: [%s]", jid); GatewayClient client = null; try { String bareJid = JIDUtils.getBareJid(jid); String resource = JIDUtils.getResource(jid); boolean resourceFound = false; Selector selector = Pelops.createSelector(schemaName); List<Column> columns = selector.getColumnsFromRow("clients", bareJid, false, ConsistencyLevel.ONE); if (columns != null && columns.size() > 0) { for (Column column : columns) { String name = Bytes.toUTF8(column.getName()); if (name.equals(resource)) { resourceFound = true; } } } if (resourceFound) { Application application = getApplication(JIDUtils.getBareJid(jid)); if (application != null) { client = new GatewayClient(); client.setJid(jid); client.setPlatform(application.getPlatform()); } } } catch (PelopsException pe) { log.error(pe.getMessage(), pe); } return client; }