source: sandbox/webservice/api/rest/mail/MessagesResource.php @ 6277

Revision 6277, 3.7 KB checked in by niltonneto, 10 years ago (diff)

Ticket #2507 - Corrigido valor de retorno da variável msgHasAttachments para API 2.2

Line 
1<?php
2
3class MessagesResource extends MailAdapter {   
4        public function post($request){
5                // to Receive POST Params (use $this->params)
6                parent::post($request);
7               
8                if($this-> isLoggedIn())
9                {                                       
10
11                        if($this->getParam('folderID') && $this->getParam('msgID') > 0) {
12                                $msg = $this->getMessage();
13                                if(!$msg){
14                                        Errors::runException("MAIL_MESSAGE_NOT_FOUND", $this->getParam('folderID'));
15                                }
16                                else{
17                                        $result = array ('messages' => array($msg));
18                                        $this->setResult($result) ;
19                                        return $this->getResponse();
20                                }
21                        }
22       
23                        $max_email_per_page = intval($this->getParam('resultsPerPage') ? $this->getParam('resultsPerPage') :
24                                        $this->getImap()->prefs['max_email_per_page']);
25       
26                        $current_page = intval($this->getParam('page') ? $this->getParam('page') : 1);
27       
28                        $msg_range_begin = ($max_email_per_page * ($current_page - 1)) + 1;
29                        $msg_range_end = $msg_range_begin + ($max_email_per_page  - 1);
30       
31                        $this->getImap()->prefs['preview_msg_subject'] = "1";
32       
33       
34                        $imap_msgs = $this->getImap()-> get_range_msgs2(
35                                        array(  "folder"                        => $this->getParam('folderID'),
36                                                        "msg_range_begin"       => $msg_range_begin,
37                                                        "msg_range_end"         => $msg_range_end,
38                                                        "search_box_type"       => "ALL",
39                                                        "sort_box_reverse"      => "1",
40                                                        "sort_box_type"         => "SORTARRIVAL"
41                                        ));
42                }
43                if(!$imap_msgs){
44                        return $this->getResponse();
45                }
46               
47                $all_msgs = array();
48       
49                foreach($imap_msgs as $i => $imap_msg) {
50                        if(!is_int($i)) {
51                                continue;
52                        }
53                        $msg = array();
54                        $msg['msgID'] = $imap_msg['msg_number'];
55                        $msg['folderID'] =  $imap_msgs['folder'];
56                        $msg['msgDate'] = gmdate('d/m/Y H:i', $imap_msg['timestamp']);
57                        $msg['msgFrom']['fullName'] = $imap_msg['from']['name'];
58                        $msg['msgFrom']['mailAddress'] = $imap_msg['from']['email'];
59                        $msg['msgTo'] = array();
60                        if($this->getExpressoVersion() != "2.2") {
61                                foreach($imap_msg['to'] as $to){
62                                        $msg['msgTo'][] = array('fullName' => $to['name'], 'mailAddress' => $to['email']);
63                                }
64                        }else{
65                                $msg['msgTo'][] = array('fullName' => $imap_msg['to']['name'], 'mailAddress' => $imap_msg['to']['email']);
66                        }
67                        $msg['msgReplyTo'][0] = $this->formatMailObject($imap_msg['reply_toaddress']);
68                        $msg['msgSubject']  = mb_convert_encoding($imap_msg['subject'],"UTF8", "ISO_8859-1");
69       
70                        if($this->getExpressoVersion() != "2.2") {
71                                $msg['msgHasAttachments'] = $imap_msg['attachment'] ? "1" : "0";
72                        }
73                        else{
74                                $msg['msgHasAttachments'] = $imap_msg['attachment']['number_attachments'] ? "1" : "0";
75                        }
76       
77                        $msg['msgFlagged']      = $imap_msg['Flagged'] == "F" ? "1" : "0";
78                        $msg['msgForwarded']= $imap_msg['Forwarded'] == "F" ? "1" : "0";
79                        $msg['msgAnswered'] = $imap_msg['Answered'] == "A" ? "1" : "0";
80                        $msg['msgDraft']        = $imap_msg['Draft'] == "X" ? "1" : "0";
81                        $msg['msgSeen']         = $imap_msg['Unseen'] == "U" ? "0" : "1";
82       
83                        $msg['ContentType']     = $imap_msg['ContentType'];
84                        $msg['msgSize']         = $imap_msg['Size'];
85       
86                        $msg['msgBodyResume'] = $imap_msg['msg_sample']['body'];
87       
88                        if($this->getExpressoVersion() != "2.2") {
89                                $msg['msgBodyResume'] =  base64_decode($msg['msgBodyResume']);
90                        }
91       
92                        $msg['msgBodyResume'] = substr($msg['msgBodyResume'], 2);
93                        $msg['msgBodyResume'] = str_replace("\r\n", "", $msg['msgBodyResume']);
94                        $msg['msgBodyResume'] = str_replace(chr(160)," ", $msg['msgBodyResume']);
95                        $msg['msgBodyResume'] = preg_replace('/\s\s+/', '', $msg['msgBodyResume']);
96                        $msg['msgBodyResume'] = mb_convert_encoding($msg['msgBodyResume'],"UTF8", "ISO_8859-1");
97       
98                        $all_msgs[] = $msg;
99                }
100                $result = array (
101                                'messages'        => $all_msgs,
102                                'timeZone'        => $imap_msgs['offsetToGMT'],
103                                'totalUnseen' => $imap_msgs['tot_unseen']
104                );
105                       
106                $this->setResult($result);     
107               
108                //      to Send Response (JSON RPC format)
109                return $this->getResponse();           
110        }
111}
Note: See TracBrowser for help on using the repository browser.