Changeset 7209


Ignore:
Timestamp:
09/14/12 09:12:15 (7 years ago)
Author:
gustavo
Message:

Ticket #0000 - Criado novo modulo para o desenvolvimento do novo ExpressoMail?

Location:
sandbox/newExpressoMail/prototype
Files:
39 added
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/newExpressoMail/prototype/services/ImapServiceAdapter.php

    r6930 r7209  
    22/** 
    33 * 
    4  * Copyright (C) 2012 Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
     4 * Copyright (C) 2012 Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
    55 * 
    66 * This program is free software; you can redistribute it and/or modify it under 
     
    2626 * 
    2727 * You can contact Prognus Software Livre headquarters at Av. Tancredo Neves, 
    28  * 6731, PTI, Edifício do Saber, 3º floor, room 306, Foz do Iguaçu - PR - Brasil or at 
     28 * 6731, PTI, Edifício do Saber, 3º floor, room 306, Foz do Iguaçu - PR - Brasil or at 
    2929 * e-mail address prognus@prognus.com.br. 
    3030 * 
    31  * Classe de abstração que faz uma adaptação para manipulação de informações 
    32  * no IMAP a partir de vários métodos. 
     31 * Classe de abstração que faz uma adaptação para manipulação de informações 
     32 * no IMAP a partir de vários métodos. 
    3333 * 
    3434 * @package    Prototype 
    3535 * @license    http://www.gnu.org/copyleft/gpl.html GPL 
    36  * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
     36 * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
    3737 * @version    2.4 
    38  * @sponsor    Caixa Econômica Federal 
    39  * @since      Arquivo disponibilizado na versão 2.4 
     38 * @sponsor    Caixa EconÃŽmica Federal 
     39 * @since      Arquivo disponibilizado na versão 2.4 
    4040 */ 
    4141 
     
    4848 * @package    Prototype (Mail) 
    4949 * @license    http://www.gnu.org/copyleft/gpl.html GPL 
    50  * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
     50 * @author     Consórcio Expresso Livre - 4Linux (www.4linux.com.br) e Prognus Software Livre (www.prognus.com.br) 
    5151 * @version    2.4 
    52  * @sponsor    Caixa Econômica Federal 
    53  * @since      Classe disponibilizada na versão 2.4 
     52 * @sponsor    Caixa EconÃŽmica Federal 
     53 * @since      Classe disponibilizada na versão 2.4 
    5454 */ 
    5555class ImapServiceAdapter extends imap_functions/* implements Service*/ 
     
    7070                $context = isset($justthese['context']) ? $justthese['context'] : '' ; 
    7171 
     72                $context = $context == '' ? (isset($criteria['folder']) ? $criteria : '') : $context; 
     73 
    7274                switch( $URI['concept'] ) 
    7375                { 
    7476                        case 'folder': 
    7577                        { 
     78                                 
    7679                                $result = $this->getFolders(); 
    7780 
     
    122125                                 
    123126                                /** 
    124                                  * Trata o caso específico de retorno do atributo messageId 
     127                                 * Trata o caso específico de retorno do atributo messageId 
    125128                                 * 
    126                                  * TODO - refazer todo a operação find do conceito message, uma vez que esta  
     129                                 * TODO - refazer todo a operação find do conceito message, uma vez que esta  
    127130                                 * foi desenvolvida quando a nova API ainda era muito imatura e se encontra  
    128                                  * muito acoplada à estrutura de retorno esperada pelo plugin jqGrid 
     131                                 * muito acoplada à estrutura de retorno esperada pelo plugin jqGrid 
    129132                                 */ 
    130133                                if ( $justthese )  
     
    150153 
    151154                                                        /** 
    152                                                          * Se não foi passado messageNumber no filtro,  
     155                                                         * Se não foi passado messageNumber no filtro,  
    153156                                                         * busca todas as mensagens de cada pasta 
    154157                                                         */ 
     
    341344 
    342345                                        /** 
    343                                          * Se é uma busca por messageId 
     346                                         * Se é uma busca por messageId 
    344347                                         */ 
    345348                                        if (!empty($map['messageId'])) { 
     
    358361 
    359362                                        /** 
    360                                          * Se é uma busca por messageNumber. 
    361                                          * Lembrando que, neste caso, só deve ser suportada uma única pasta no filtro. 
     363                                         * Se é uma busca por messageNumber. 
     364                                         * Lembrando que, neste caso, só deve ser suportada uma única pasta no filtro. 
    362365                                         */ 
    363366                                        } else { 
     
    366369 
    367370                                        /** 
    368                                          * Se é uma busca por messageId, deve ser comparado com os messageNumbers  
     371                                         * Se é uma busca por messageId, deve ser comparado com os messageNumbers  
    369372                                         * passados no filtro, se houverem. 
    370373                                         */ 
     
    377380 
    378381                                        /** 
    379                                          * Adicionar demais atributos às mensagens para retorno 
     382                                         * Adicionar demais atributos às mensagens para retorno 
    380383                                         */ 
    381384                                        if(is_array($messages)) 
     
    392395                                         
    393396                                        /** 
    394                                          * Se é uma busca por messageId e todos os messageIds foram econstrados: 
     397                                         * Se é uma busca por messageId e todos os messageIds foram econstrados: 
    395398                                         * Stop searching in all folders 
    396399                                         */ 
     
    452455                         
    453456                                /**  
    454                                  * identifica se o formato de ID é "folder/subfolder/subsubfolder/<messageNumber>" ou "<message-id>" 
     457                                 * identifica se o formato de ID é "folder/subfolder/subsubfolder/<messageNumber>" ou "<message-id>" 
    455458                                 */ 
    456459                                $folderName = $messageNumber = false; 
     
    479482                                        /** 
    480483                                         * Busca pela mensagem com o messageId dado. Se uma pasta foi passada, busca nela, 
    481                                          * senão busca em todas. 
     484                                         * senão busca em todas. 
    482485                                         */ 
    483486                                         
     
    549552                                         * TODO 
    550553                                         * Verificar erro ao tentar setar uma flag com o limite de flags atingido 
    551                                          * onde o status retornado pelo imap_setflag_full é true mesmo não sendo possível 
    552                                          * a inserção da flag. 
     554                                         * onde o status retornado pelo imap_setflag_full é true mesmo não sendo possível 
     555                                         * a inserção da flag. 
    553556                                         */ 
    554557 
     
    558561                                        /** 
    559562                                         * Busca pela mensagem com o messageId dado. Se uma pasta foi passada, busca nela, 
    560                                          * senão busca em todas. 
     563                                         * senão busca em todas. 
    561564                                         */ 
    562565                                        $folders = array (); 
     
    693696                                return $return; 
    694697                        } 
     698                        case 'folder': 
     699                        { 
     700 
     701                        } 
    695702                } 
    696703        } 
     
    740747                                 
    741748                                        /** 
    742                                          * Se é uma busca por messageId 
     749                                         * Se é uma busca por messageId 
    743750                                         */ 
    744751                                        if (!empty($map['messageId'])) { 
     
    754761 
    755762                                        /** 
    756                                          * Se é uma busca por messageNumber. 
    757                                          * Lembrando que, neste caso, só deve ser suportada uma única pasta no filtro. 
     763                                         * Se é uma busca por messageNumber. 
     764                                         * Lembrando que, neste caso, só deve ser suportada uma única pasta no filtro. 
    758765                                         */ 
    759766                                        } else { 
     
    762769 
    763770                                        /** 
    764                                          * Se é uma busca por messageId, deve ser comparado com os messageNumbers  
     771                                         * Se é uma busca por messageId, deve ser comparado com os messageNumbers  
    765772                                         * passados no filtro, se houverem. 
    766773                                         */ 
     
    777784 
    778785                                        /** 
    779                                          * Se é uma busca por messageId e todos os messageIds foram econstrados: 
     786                                         * Se é uma busca por messageId e todos os messageIds foram econstrados: 
    780787                                         * Stop searching in all folders 
    781788                                         */ 
     
    802809 
    803810                /** 
    804                  * TODO - implementar a deleção de todos os followupflaggeds conforme filtro 
     811                 * TODO - implementar a deleção de todos os followupflaggeds conforme filtro 
    805812                 */ 
    806813        } 
     
    809816    { 
    810817                /** 
    811                  * Os únicos atributos da sinalização presentes no IMAP são folderName, messageNumber e messageId, 
    812                  * porém a operação de update desses atributos não faz sentido para o usuário da DataLayer, 
    813                  * pois na prática elas são executadas através das operações de CREATE e DELETE. 
    814                  * Assim, para os conceitos "labeled" e "followupflagged", só faz sentido o update de  
     818                 * Os únicos atributos da sinalização presentes no IMAP são folderName, messageNumber e messageId, 
     819                 * porém a operação de update desses atributos não faz sentido para o usuário da DataLayer, 
     820                 * pois na prática elas são executadas através das operações de CREATE e DELETE. 
     821                 * Assim, para os conceitos "labeled" e "followupflagged", só faz sentido o update de  
    815822                 * atributos gravados no banco de dados e nunca no IMAP. 
    816823                 */ 
Note: See TracChangeset for help on using the changeset viewer.