/** * Handles an {@link OperationResults} by submitting the deltas it generates * and sending off any events to the robot. Note that currently no events are * send off to the robot. * * @param results the results of the operations performed * @param account the account for which to handle results of robot operations. */ private void handleResults(OperationResults results, RobotAccountData account) { OperationUtil.submitDeltas(results, waveletProvider, LOGGING_REQUEST_LISTENER); // TODO(ljvderijk): In theory we should be sending off all events that are // generated by the operations. Currently not done in production. We should // make it possible though. boolean notifyOnError = account.getCapabilities().getCapabilitiesMap().containsKey(EventType.OPERATION_ERROR); } }
private static ProtoRobotAccountData serialize(RobotAccountData account) { Preconditions.checkNotNull(account, "account is null"); ProtoRobotAccountData.Builder builder = ProtoRobotAccountData.newBuilder(); builder.setUrl(account.getUrl()); builder.setConsumerSecret(account.getConsumerSecret()); builder.setIsVerified(account.isVerified()); if (account.getCapabilities() != null) { builder.setRobotCapabilities(serialize(account.getCapabilities())); } return builder.build(); }
private DBObject robotToObject(RobotAccountData account) { return new BasicDBObject() .append(ROBOT_URL_FIELD, account.getUrl()) .append(ROBOT_SECRET_FIELD, account.getConsumerSecret()) .append(ROBOT_CAPABILITIES_FIELD, capabilitiesToObject(account.getCapabilities())) .append(ROBOT_VERIFIED_FIELD, account.isVerified()); }
public void testFetchCapabilities() throws Exception { when(connection.get(TEST_CAPABILITIES_ENDPOINT)).thenReturn(CAPABILITIES_XML); RobotAccountData accountData = connector.fetchCapabilities(ROBOT_ACCOUNT, ""); RobotCapabilities capabilities = accountData.getCapabilities(); assertEquals("Expected capabilities hash as specified in the xml", CAPABILITIES_HASH, capabilities.getCapabilitiesHash()); assertEquals("Expected protocol version as specified in the xml", ProtocolVersion.V2_2, capabilities.getProtocolVersion()); Map<EventType, Capability> capabilitiesMap = capabilities.getCapabilitiesMap(); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.size() == 2); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.containsKey(EventType.WAVELET_SELF_ADDED)); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.containsKey(EventType.OPERATION_ERROR)); // Only one connection should be made verify(connection).get(TEST_CAPABILITIES_ENDPOINT); } }
public void testFetchCapabilities() throws Exception { when(connection.get(TEST_CAPABILITIES_ENDPOINT)).thenReturn(CAPABILITIES_XML); RobotAccountData accountData = connector.fetchCapabilities(ROBOT_ACCOUNT, ""); RobotCapabilities capabilities = accountData.getCapabilities(); assertEquals("Expected capabilities hash as specified in the xml", CAPABILITIES_HASH, capabilities.getCapabilitiesHash()); assertEquals("Expected protocol version as specified in the xml", ProtocolVersion.V2_2, capabilities.getProtocolVersion()); Map<EventType, Capability> capabilitiesMap = capabilities.getCapabilitiesMap(); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.size() == 2); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.containsKey(EventType.WAVELET_SELF_ADDED)); assertTrue("Expected capabilities as specified in the xml", capabilitiesMap.containsKey(EventType.OPERATION_ERROR)); // Only one connection should be made verify(connection).get(TEST_CAPABILITIES_ENDPOINT); } }
if (account.getCapabilities() == null) { try { LOG.info(robotName + ": Initializing capabilities"); RobotCapabilities capabilities = account.getCapabilities(); EventMessageBundle messages = eventGenerator.generateEvents(wavelet, capabilities.getCapabilitiesMap(),
RobotCapabilities capabilities = robotAccountData.getCapabilities(); if (capabilities != null && capabilitiesHash.equals(capabilities.getCapabilitiesHash())) {