<?php

include '../bootstrap.php';
$instance = new interact();
// print out the XML of the requests and responses!
$instance->debug = true;
$instance->intitializeSoapClient($config_file['location']['wsdl'], $config_file['location']['endpoint']);
if ($instance->login($config_file['auth_regular']['login'], $config_file['auth_regular']['pass'])) {
    $table_object = new InteractObject();
    $table_object->setFolderName("Mason");
    $table_object->setObjectName("temp_supp_table");
    $fields = array('EMAIL_ADDRESS', 'AGE', 'CITY', 'DATE_MASON');
    $record_data = array('*****@*****.**', 'somestring', 'SanBruno', '2014-08-25T02:00:00.000-08:00');
    $record = new Record();
    $record->setFieldValues($record_data);
    $merge_table_obj = new mergeTableRecordsWithPK();
    $merge_table_obj->setInsertOnNoMatchParam(true);
    $merge_table_obj->setUpdateOnMatch(UpdateOnMatch::REPLACE);
    $merge_table_obj->setTableParam($table_object);
    $records[] = $record;
    $recordData = new RecordData();
    $recordData->setFieldNames($fields);
    $recordData->setRecords($records);
    $merge_table_obj->setRecordDataParam($recordData);
    print_r($merge_table_obj);
    $response = $instance->execute($merge_table_obj);
    $instance->logout();
}
 $rule->setMatchColumn1($match1);
 $match_op = new MatchOperator();
 $match_op->matchOperator = $match_op::_NONE_;
 $rule->setMatchOperator($match_op);
 $reject_channel = new RejectChannel();
 $reject_channel->rejectChannel = $reject_channel::EMAIL;
 $rule->setRejectChannel($reject_channel);
 $update = new UpdateOnMatch();
 $update->updateOnMatch = $update::REPLACE;
 $rule->setUpdateOnMatch($update);
 $merge_obj->setMergeRuleParam($rule);
 $fieldNames = array("EMAIL_ADDRESS_", "CUSTOMER_ID_");
 $record_1 = new Record();
 $record_1->setFieldValues(array("*****@*****.**", "TEST_MDIXON"));
 $record_2 = new Record();
 $record_2->setFieldValues(array("*****@*****.**", "TEST_MDIXON"));
 $records[] = $record_1;
 $records[] = $record_2;
 $merge_obj->setRecordDataParam($fieldNames, $records);
 $merge_result_ids = $instance->execute($merge_obj);
 /*
  * merge call end
  */
 /*
  * trigger event call begin
  */
 $custom_obj = new triggerCustomEvent();
 $custom_event = new CustomEvent();
 $custom_event->setEventName("DEV_SUPP_TEST");
 $custom_obj->setCustomEventParam($custom_event);
 $identifier = new RecipientIdentifier();
 $reject_channel->rejectChannel = $reject_channel::EMAIL;
 $update = new UpdateOnMatch();
 $update->updateOnMatch = $update::REPLACE;
 $rule = new ListMergeRule();
 $rule->setDefaultPermissionStatus($status);
 $rule->setInsertOnNoMatch(true);
 $rule->setMatchColumn1($match1);
 $rule->setMatchOperator($match_op);
 $rule->setRejectChannel($reject_channel);
 $rule->setUpdateOnMatch($update);
 $merge_obj->setMergeRuleParam($rule);
 $fieldNames = array("EMAIL_ADDRESS_", "EMAIL_PERMISSION_STATUS_", "CITY_");
 $record_1 = new Record();
 $record_1->setFieldValues(array("*****@*****.**", "I", "optin city"));
 $record_2 = new Record();
 $record_2->setFieldValues(array("*****@*****.**", "O", "optout city"));
 $records[] = $record_1;
 $records[] = $record_2;
 $merge_obj->setRecordDataParam($fieldNames, $records);
 $merge_result_ids = $instance->execute($merge_obj);
 // Now we make a secondary merge call to opt out the newly inserted record....
 // for brevity i will reuse some of the variables above
 /*
 $fieldNames2 = array( "EMAIL_ADDRESS_", "EMAIL_PERMISSION_STATUS_", "CITY_" );
 
 $record_2 = new Record();
 $record_2->setFieldValues( array( "*****@*****.**", "OPTOUT") );
 $records2[] = $record_2;
 
 $merge_obj->setRecordDataParam( $fieldNames2, $records2 );
 $merge_result_ids_2 = $instance->execute( $merge_obj );
 $reject_channel->rejectChannel = $reject_channel::EMAIL;
 $rule->setRejectChannel($reject_channel);
 $update = new UpdateOnMatch();
 $update->updateOnMatch = $update::REPLACE;
 $rule->setUpdateOnMatch($update);
 $merge_trigger_obj->setMergeRuleParam($rule);
 $interact_object = new InteractObject();
 $interact_object->setFolderName("Mason");
 $interact_object->setObjectName("masonCampaign1");
 $merge_trigger_obj->setCampaignParam($interact_object);
 $fields = array('EMAIL_ADDRESS_', 'CITY_');
 $values[] = array("*****@*****.**", "mike");
 $values[] = array("*****@*****.**", "tony");
 foreach ($values as $array) {
     $record = new Record();
     $record->setFieldValues($array);
     $records[] = $record;
 }
 $transientDataArray[] = array("FIRSTNAME" => "Mason");
 $transientDataArray[] = array("FIRSTNAME" => "Sam");
 for ($tmp = 0; $tmp < count($transientDataArray); $tmp++) {
     $optionalDataArray = null;
     foreach ($transientDataArray[$tmp] as $name => $value) {
         $optionalData = new optionalData();
         $optionalData->name = $name;
         $optionalData->value = $value;
         $optionalDataArray[] = $optionalData;
     }
     $triggerDataArray[] = $optionalDataArray;
 }
 $merge_trigger_obj->setRecordDataParam($fields, $values);