public function testCRUD() { midcom::get('auth')->request_sudo('org.openpsa.directmarketing'); $topic = $this->create_object('midcom_db_topic', array('component' => 'org.openpsa.directmarketing')); $campaign = $this->create_object('org_openpsa_directmarketing_campaign_dba', array('node' => $topic->id)); $message = $this->create_object('org_openpsa_directmarketing_campaign_message_dba', array('campaign' => $campaign->id)); $receipt = new org_openpsa_directmarketing_campaign_messagereceipt_dba(); $stat = $receipt->create(); $this->assertFalse($stat); $receipt = new org_openpsa_directmarketing_campaign_messagereceipt_dba(); $receipt->message = $message->id; $stat = $receipt->create(); $this->assertTrue($stat); $this->register_object($receipt); $receipt->token = 'TEST'; $stat = $receipt->update(); $this->assertTrue($stat); $receipt->refresh(); $this->assertEquals('TEST', $receipt->token); $stat = $receipt->delete(); $this->assertTrue($stat); midcom::get('auth')->drop_sudo(); }
private function _create_link_receipt(&$receipt, &$token, &$target) { if (!array_key_exists('create_status', $this->_request_data)) { $this->_request_data['create_status'] = array('receipts' => array(), 'links' => array()); } //Store the click in database $link = new org_openpsa_directmarketing_link_log_dba(); $link->person = $receipt->person; $link->message = $receipt->message; $link->target = $target; $link->token = $token; $this->_request_data['create_status']['links'][$target] = $link->create(); //Create received and read receipts $read_receipt = new org_openpsa_directmarketing_campaign_messagereceipt_dba(); $read_receipt->person = $receipt->person; $read_receipt->message = $receipt->message; $read_receipt->token = $token; $read_receipt->orgOpenpsaObtype = org_openpsa_directmarketing_campaign_messagereceipt_dba::RECEIVED; $this->_request_data['create_status']['receipts'][$token] = $read_receipt->create(); }
/** * Creates a message receipt of type. */ function create_receipt($message_id, $type, $token = '', $parameters = false) { $receipt = new org_openpsa_directmarketing_campaign_messagereceipt_dba(); $receipt->orgOpenpsaObtype = $type; $receipt->person = $this->person; $receipt->message = $message_id; $receipt->token = $token; $receipt->timestamp = time(); midcom::get('auth')->request_sudo('org.openpsa.directmarketing'); $stat = $receipt->create(); if (!$stat) { debug_add('Failed to create, errstr: ' . midcom_connection::get_error_string(), MIDCOM_LOG_ERROR); return $stat; } if (is_array($parameters) && !empty($parameters)) { foreach ($parameters as $param_data) { if (empty($param_data['domain']) || empty($param_data['name']) || empty($param_data['value'])) { // TODO: Log warning continue; } $receipt->set_parameter($param_data['domain'], $param_data['name'], $param_data['value']); } } midcom::get('auth')->drop_sudo(); }