use of org.talend.components.marketo.runtime.client.rest.response.LeadActivitiesResult in project components by Talend.
the class MarketoLeadClient method getRecordResultForLead.
public MarketoRecordResult getRecordResultForLead(InputOperation operation, String requestParams, int limit, Schema schema, Map<String, String> mappings) {
MarketoRecordResult mkto = new MarketoRecordResult();
try {
PaginateResult result = null;
switch(operation) {
case getLead:
case getMultipleLeads:
result = executeFakeGetRequestForLead(requestParams);
break;
case getLeadActivity:
result = (LeadActivitiesResult) executeGetRequest(LeadActivitiesResult.class);
break;
case getLeadChanges:
result = (LeadChangesResult) executeGetRequest(LeadChangesResult.class);
break;
default:
throw new IllegalArgumentException("Invalid operation for getRecordResultForLead: " + operation);
}
mkto.setSuccess(result.isSuccess());
if (mkto.isSuccess()) {
mkto.setRecordCount(result.getResult().isEmpty() ? 0 : result.getResult().size());
mkto.setRemainCount((result.getNextPageToken() != null) ? limit : 0);
mkto.setStreamPosition(result.getNextPageToken());
if (mkto.getRecordCount() > 0) {
switch(operation) {
case getLead:
case getMultipleLeads:
mkto.setRecords(convertLeadRecords(((LeadResult) result).getResult(), schema, mappings));
break;
case getLeadActivity:
mkto.setRecords(convertLeadActivityRecords(((LeadActivitiesResult) result).getResult(), schema, mappings));
break;
case getLeadChanges:
mkto.setRecords(convertLeadChangesRecords(((LeadChangesResult) result).getResult(), schema, mappings));
break;
default:
throw new IllegalArgumentException("Invalid operation for getRecordResultForLead: " + operation);
}
}
} else {
mkto.setErrors(result.getErrors());
}
} catch (MarketoException e) {
LOG.error("Error {}.", e.toString());
mkto.setSuccess(false);
mkto.setErrors(Collections.singletonList(e.toMarketoError()));
}
return mkto;
}
use of org.talend.components.marketo.runtime.client.rest.response.LeadActivitiesResult in project components by Talend.
the class MarketoLeadClientTest method testGetLeadActivity.
@Test
public void testGetLeadActivity() throws Exception {
iprops.inputOperation.setValue(InputOperation.getLeadActivity);
iprops.leadKeyTypeREST.setValue(LeadKeyTypeREST.id);
iprops.leadKeyValues.setValue("12345");
iprops.includeTypes.type.setValue(Arrays.asList(IncludeExcludeFieldsREST.AddToList.name()));
iprops.afterInputOperation();
List<Field> moreFields = new ArrayList<>();
moreFields.add(new Field("attrName", AvroUtils._string(), "", null));
moreFields.add(new Field("campaignId", AvroUtils._int(), "", null));
iprops.schemaInput.schema.setValue(MarketoUtils.newSchema(iprops.schemaInput.schema.getValue(), "test", moreFields));
iprops.beforeMappingInput();
//
doThrow(new MarketoException("REST", "error")).when(client).executeGetRequest(LeadActivitiesResult.class);
mktoRR = client.getLeadActivity(iprops, null);
assertFalse(mktoRR.isSuccess());
assertFalse(mktoRR.getErrorsString().isEmpty());
//
doReturn(new LeadActivitiesResult()).when(client).executeGetRequest(LeadActivitiesResult.class);
mktoRR = client.getLeadActivity(iprops, null);
assertFalse(mktoRR.isSuccess());
//
LeadActivitiesResult lar = new LeadActivitiesResult();
lar.setSuccess(true);
List<LeadActivityRecord> lars = new ArrayList<>();
LeadActivityRecord larecord = new LeadActivityRecord();
larecord.setId(123456);
larecord.setMarketoGUID("ABC-123-DEF");
larecord.setLeadId(12345);
larecord.setActivityTypeId(1);
larecord.setActivityTypeValue("Visit Webpage");
larecord.setPrimaryAttributeValue("changed");
larecord.setPrimaryAttributeValueId(123);
larecord.setActivityDate(new Date());
larecord.setCampaignId(456);
List<Map<String, Object>> attributes = new ArrayList<>();
Map<String, Object> attribute = new HashMap<>();
attribute.put("name", "attrName");
attribute.put("value", "attrValue");
attributes.add(attribute);
larecord.setAttributes(attributes);
lars.add(larecord);
lar.setResult(lars);
doReturn(lar).when(client).executeGetRequest(LeadActivitiesResult.class);
mktoRR = client.getLeadActivity(iprops, null);
assertTrue(mktoRR.isSuccess());
List<IndexedRecord> records = mktoRR.getRecords();
assertNotNull(records);
IndexedRecord record = records.get(0);
assertNotNull(record);
Schema refSchema = iprops.schemaInput.schema.getValue();
assertEquals(refSchema, record.getSchema());
assertEquals(123456, record.get(refSchema.getField("id").pos()));
assertEquals("ABC-123-DEF", record.get(refSchema.getField("marketoGUID").pos()));
assertEquals(12345, record.get(refSchema.getField("leadId").pos()));
assertEquals(1, record.get(refSchema.getField("activityTypeId").pos()));
assertEquals("Visit Webpage", record.get(refSchema.getField("activityTypeValue").pos()));
assertEquals(123, record.get(refSchema.getField("primaryAttributeValueId").pos()));
assertEquals(456, record.get(refSchema.getField("campaignId").pos()));
assertEquals("changed", record.get(refSchema.getField("primaryAttributeValue").pos()));
assertTrue(record.get(refSchema.getField("activityDate").pos()) instanceof Long);
assertEquals("attrValue", record.get(refSchema.getField("attrName").pos()));
}
Aggregations