Skip to content
Snippets Groups Projects
Commit bbfdfd80 authored by Peter Rotich's avatar Peter Rotich
Browse files

Add ApiEmailDataParser class - support email parsing

parent 3f04bca1
No related branches found
No related tags found
No related merge requests found
......@@ -17,8 +17,11 @@ class TicketController extends ApiController {
),
"message", "ip", "priorityId"
);
if ($format == "xml") return array("ticket" => $supported);
else return $supported;
if(!strcasecmp($format, 'email'))
$supported = array_merge($supported, array('header', 'mid', 'emailId', 'ticketId'));
return $supported;
}
function create($format) {
......
......@@ -316,4 +316,39 @@ class ApiJsonDataParser extends JsonDataParser {
}
}
/* Email parsing */
include_once "class.mailparse.php";
class ApiEmailDataParser extends EmailDataParser {
function parse($stream) {
return $this->fixup(parent::parse($stream));
}
function fixup($data) {
global $cfg;
if(!$data) return $data;
$data['source'] = 'Email';
if(!$data['message'])
$data['message'] = $data['subject']?$data['subject']:'(EMPTY)';
if(!$data['subject'])
$data['subject'] = '[No Subject]';
if(!$data['emailId'])
$data['emailId'] = $cfg->getDefaultEmailId();
if($data['email'] && preg_match ('[[#][0-9]{1,10}]', $data['subject'], $matches)) {
if(($tid=Ticket::getIdByExtId(trim(preg_replace('/[^0-9]/', '', $matches[0])), $data['email'])))
$data['ticketId'] = $tid;
}
if(!$cfg->useEmailPriority())
unset($data['priorityId']);
return $data;
}
}
?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment