Search in sources :

Example 1 with ListKey

use of com.marketo.mktows.ListKey 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;
}
Also used : ArrayOfLeadKey(com.marketo.mktows.ArrayOfLeadKey) SuccessListOperation(com.marketo.mktows.SuccessListOperation) Marshaller(javax.xml.bind.Marshaller) HashMap(java.util.HashMap) JAXBException(javax.xml.bind.JAXBException) SyncStatus(org.talend.components.marketo.runtime.client.rest.type.SyncStatus) ArrayList(java.util.ArrayList) JAXBContext(javax.xml.bind.JAXBContext) ArrayOfString(com.marketo.mktows.ArrayOfString) DatatypeConfigurationException(javax.xml.datatype.DatatypeConfigurationException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) InvalidKeyException(java.security.InvalidKeyException) WebServiceException(javax.xml.ws.WebServiceException) MarketoException(org.talend.components.marketo.runtime.client.type.MarketoException) ParseException(java.text.ParseException) JAXBException(javax.xml.bind.JAXBException) ComponentException(org.talend.components.api.exception.ComponentException) MalformedURLException(java.net.MalformedURLException) MarketoSyncResult(org.talend.components.marketo.runtime.client.type.MarketoSyncResult) LeadStatus(com.marketo.mktows.LeadStatus) MarketoError(org.talend.components.marketo.runtime.client.type.MarketoError) ListKey(com.marketo.mktows.ListKey) ParamsListOperation(com.marketo.mktows.ParamsListOperation) LeadKey(com.marketo.mktows.LeadKey) ArrayOfLeadKey(com.marketo.mktows.ArrayOfLeadKey)

Aggregations

ArrayOfLeadKey (com.marketo.mktows.ArrayOfLeadKey)1 ArrayOfString (com.marketo.mktows.ArrayOfString)1 LeadKey (com.marketo.mktows.LeadKey)1 LeadStatus (com.marketo.mktows.LeadStatus)1 ListKey (com.marketo.mktows.ListKey)1 ParamsListOperation (com.marketo.mktows.ParamsListOperation)1 SuccessListOperation (com.marketo.mktows.SuccessListOperation)1 MalformedURLException (java.net.MalformedURLException)1 InvalidKeyException (java.security.InvalidKeyException)1 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)1 ParseException (java.text.ParseException)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 JAXBContext (javax.xml.bind.JAXBContext)1 JAXBException (javax.xml.bind.JAXBException)1 Marshaller (javax.xml.bind.Marshaller)1 DatatypeConfigurationException (javax.xml.datatype.DatatypeConfigurationException)1 WebServiceException (javax.xml.ws.WebServiceException)1 ComponentException (org.talend.components.api.exception.ComponentException)1 SyncStatus (org.talend.components.marketo.runtime.client.rest.type.SyncStatus)1