Changeset 5989 for trunk/prototype/modules/mail
- Timestamp:
- 04/20/12 18:14:09 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/mail/interceptors/Helpers.php
r5983 r5989 133 133 134 134 if($imap_result) { 135 $params['messageId'] = $imap_result[ 'messageId'];135 $params['messageId'] = $imap_result[0]['messageId']; 136 136 } 137 137 } 138 138 139 139 $filter = array('=', 'messageId', $params['messageId']); 140 Controller::delete(array('concept' => 'followupflagged', 'service' => 'PostgreSQL'), null, $filter);140 Controller::delete(array('concept' => 'followupflagged', 'service' => 'PostgreSQL'), null, array('filter' => $filter)); 141 141 142 142 } … … 159 159 if(isset($uri['id'])) { 160 160 Controller::deleteALL(array('concept' => 'followupflagged'), null , array('filter' => array('=' , 'followupflagId' , $uri['id']))); 161 162 161 } 163 162 } … … 165 164 //followupflagged:PostgreSQL.before.delete 166 165 public function doImapDelete( &$uri , &$params , &$criteria , $original ) { 167 166 168 167 $imap_uri = $uri; 169 168 $imap_uri['service'] = 'Imap'; 170 list($messageId, $uri['id']) = explode('#', $uri['id']); 171 172 $result = Controller::delete($imap_uri, $params, $imap_criteria); 173 174 if (!$result) 175 return false; 169 170 $result = Controller::delete($imap_uri, $params, $criteria); 171 172 return $result; 173 174 } 175 176 //followupflagged:Imap.before.delete 177 public function getReferenceToImapDelete( &$uri , &$params , &$criteria , $original ) { 178 179 if ($uri['id'] && !$criteria) { 180 $db_uri = $uri; 181 $db_uri['service'] = 'PostgreSQL'; 182 $flagged = Controller::read($db_uri, false, false); 183 184 if ($flagged) { 185 if (!$criteria) 186 $criteria = array(); 187 $criteria['filter'] = array('=', 'messageId', $flagged['messageId']); 188 } else { 189 return false; 190 } 191 } 176 192 } 177 193 … … 190 206 //followupflagged:PostgreSQL.after.read 191 207 public function doImapRead( &$uri , &$result , &$criteria , $original ) { 192 208 /** 209 * Se a busca for apenas no banco de dados, pula-se todas as verificações 210 * deste interceptor. 211 */ 212 if ($original['URI']['service'] == 'PostgreSQL') return $result; 213 193 214 if ($result) { 194 $imap_result = Controller::read( 195 array('concept' => 'followupflagged', 'service' => 'Imap'), 215 $imap_uri = $uri; 216 $imap_uri['service'] = 'Imap'; 217 $imap_result = Controller::find( 218 $imap_uri, 196 219 false, 197 220 array('filter' => array('=', 'messageId', $result['messageId'])) … … 202 225 * Faz a consistência do banco com o imap 203 226 */ 204 if ( !$imap_result) {205 $r = Controller::delete ALL(array('concept' => 'followupflagged'), null, $criteria);227 if (count($imap_result) < 1) { 228 $r = Controller::delete($uri, null, $criteria); 206 229 return false; 230 } else { 231 $imap_result = $imap_result[0]; 207 232 } 208 233 … … 210 235 * Faz a consistência do banco com o imap 211 236 */ 212 if ($imap_result['messageId'] !== $ imap_result['messageId']) {237 if ($imap_result['messageId'] !== $result['messageId']) { 213 238 $n = $imap_result; 214 239 $n['followupflagId'] = 1; … … 236 261 237 262 if (self::in_arrayr('alarmDeadline', $original['criteria']) || self::in_arrayr('doneDeadline', $original['criteria'])) { 238 if (empty($result)) return $re ult;263 if (empty($result)) return $result; 239 264 240 265 $idList = array();
Note: See TracChangeset
for help on using the changeset viewer.