use of org.talend.components.marketo.runtime.client.type.MarketoSyncResult in project components by Talend.
the class MarketoRuntimeTestBase method getSuccessSyncResult.
public MarketoSyncResult getSuccessSyncResult(String status) {
MarketoSyncResult mkto = new MarketoSyncResult();
mkto.setSuccess(true);
mkto.setRecordCount(1);
SyncStatus sts1 = new SyncStatus();
sts1.setId(12345);
sts1.setStatus(status);
sts1.setMarketoGUID("mktoGUID");
sts1.setSeq(0);
mkto.setRecords(Arrays.asList(sts1));
return mkto;
}
use of org.talend.components.marketo.runtime.client.type.MarketoSyncResult in project components by Talend.
the class MarketoRuntimeTestBase method getFailedSyncResult.
public MarketoSyncResult getFailedSyncResult(String api, String code, String message) {
MarketoSyncResult mkto = new MarketoSyncResult();
mkto.setSuccess(false);
mkto.setRecordCount(0);
List<MarketoError> errors = new ArrayList<>();
MarketoError error = new MarketoError(api, code, message);
errors.add(error);
mkto.setErrors(errors);
return mkto;
}
use of org.talend.components.marketo.runtime.client.type.MarketoSyncResult in project components by Talend.
the class MarketoSOAPClient method listOperation.
public MarketoSyncResult listOperation(ListOperationType operationType, ListOperationParameters parameters) {
LOG.debug("listOperation : {}", parameters);
ParamsListOperation paramsListOperation = new ParamsListOperation();
paramsListOperation.setListOperation(operationType);
paramsListOperation.setStrict(objectFactory.createParamsListOperationStrict(parameters.getStrict()));
ListKey listKey = new ListKey();
listKey.setKeyValue(parameters.getListKeyValue());
listKey.setKeyType(ListKeyType.valueOf(parameters.getListKeyType()));
paramsListOperation.setListKey(listKey);
ArrayOfLeadKey leadKeys = new ArrayOfLeadKey();
for (String lkv : parameters.getLeadKeyValues()) {
LeadKey lk = new LeadKey();
lk.setKeyType(valueOf(parameters.getLeadKeyType()));
lk.setKeyValue(lkv);
leadKeys.getLeadKeies().add(lk);
}
paramsListOperation.setListMemberList(leadKeys);
MarketoSyncResult mkto = new MarketoSyncResult();
mkto.setRequestId(SOAP + "::" + operationType.name());
try {
SuccessListOperation result = getPort().listOperation(paramsListOperation, header);
if (LOG.isDebugEnabled()) {
try {
JAXBContext context = JAXBContext.newInstance(SuccessListOperation.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(result, System.out);
} catch (JAXBException e) {
LOG.error(e.getMessage());
}
}
mkto.setSuccess(true);
if (!result.getResult().getStatusList().isNil()) {
mkto.setRecordCount(result.getResult().getStatusList().getValue().getLeadStatuses().size());
List<LeadStatus> statuses = result.getResult().getStatusList().getValue().getLeadStatuses();
List<SyncStatus> resultStatus = new ArrayList<>();
for (LeadStatus status : statuses) {
SyncStatus sts = new SyncStatus(Integer.parseInt(status.getLeadKey().getKeyValue()), String.valueOf(status.isStatus()));
if (!status.isStatus() && !ISMEMBEROFLIST.equals(operationType)) {
Map<String, String> reason = new HashMap<>();
reason.put("code", "20103");
reason.put("message", "Lead Not Found");
sts.setReasons(Collections.singletonList(reason));
}
resultStatus.add(sts);
}
mkto.setRecords(resultStatus);
} else {
LOG.debug("No detail about successed operation, building one...");
String success = String.valueOf(result.getResult().isSuccess());
mkto.setRecordCount(parameters.getLeadKeyValue().size());
for (String leadk : parameters.getLeadKeyValue()) {
SyncStatus status = new SyncStatus(Integer.parseInt(leadk), success);
mkto.getRecords().add(status);
}
}
} catch (Exception e) {
LOG.error("[{}] error: {}", operationType.name(), e.getMessage());
mkto.setSuccess(false);
mkto.setErrors(Collections.singletonList(new MarketoError(SOAP, e.toString())));
}
return mkto;
}
use of org.talend.components.marketo.runtime.client.type.MarketoSyncResult in project components by Talend.
the class MarketoSOAPClientTestIT method testAddToList.
/*
*
*
* ListOperations
*
*
*/
@Test
public void testAddToList() throws Exception {
MarketoSource source = new MarketoSource();
source.initialize(null, listProperties);
MarketoClientService client = source.getClientService(null);
//
ListOperationParameters parms = new ListOperationParameters();
parms.setApiMode(SOAP.name());
parms.setListKeyValue(UNDX_TEST_LIST_SMALL);
parms.setLeadKeyValue(new String[] { createdLeads.get(10).toString() });
// first make sure to remove lead
MarketoSyncResult result = client.removeFromList(parms);
LOG.debug("result = {}.", result);
List<SyncStatus> changes = result.getRecords();
assertTrue(changes.size() > 0);
for (SyncStatus r : changes) {
assertNotNull(r);
assertNotNull(r.getId());
LOG.debug("r = {}.", r);
}
// then add it
result = client.addToList(parms);
LOG.debug("result = {}.", result);
changes = result.getRecords();
assertTrue(changes.size() > 0);
for (SyncStatus r : changes) {
assertNotNull(r);
assertNotNull(r.getId());
assertTrue(Boolean.parseBoolean(r.getStatus()));
LOG.debug("r = {}.", r);
}
}
use of org.talend.components.marketo.runtime.client.type.MarketoSyncResult in project components by Talend.
the class MarketoSOAPClientTestIT method testAddToListFail.
@Test
public void testAddToListFail() throws Exception {
MarketoSource source = new MarketoSource();
source.initialize(null, listProperties);
MarketoClientService client = source.getClientService(null);
//
ListOperationParameters parms = new ListOperationParameters();
parms.setApiMode(SOAP.name());
parms.setListKeyValue(UNDX_TEST_LIST_SMALL);
parms.setLeadKeyValue(new String[] { "12345" });
// first make sure to remove lead
MarketoSyncResult result;
List<SyncStatus> changes;
result = client.addToList(parms);
LOG.debug("result = {}.", result);
changes = result.getRecords();
assertTrue(changes.size() > 0);
for (SyncStatus r : changes) {
assertNotNull(r);
assertNotNull(r.getId());
assertFalse(Boolean.parseBoolean(r.getStatus()));
assertEquals("[20103] Lead Not Found.", r.getAvailableReason());
LOG.debug("r = {}.", r);
}
}
Aggregations