emailservices/nmclientapi/src/nmapitypesconverter.cpp
author hgs
Thu, 14 Oct 2010 17:33:43 +0300
changeset 76 38bf5461e270
parent 74 6c59112cfd31
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
 *
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
 *
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
 * Contributors:
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
 *
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
 * Description:
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
 *
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
 */
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
48
10eaf342f539 201025_1
hgs
parents: 43
diff changeset
    18
#include "nmapiheaders.h"
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    19
76
hgs
parents: 74
diff changeset
    20
namespace EmailClientApi
hgs
parents: 74
diff changeset
    21
{
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    22
/*!
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    23
   converts nmmailbox to client api NmApiMailbox
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
 */
76
hgs
parents: 74
diff changeset
    25
NmApiMailbox NmToApiConverter::NmMailbox2NmApiMailbox(const NmMailbox &mailbox)
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
{
43
hgs
parents: 23
diff changeset
    27
    NM_FUNCTION;
hgs
parents: 23
diff changeset
    28
    
76
hgs
parents: 74
diff changeset
    29
    NmApiMailbox apiMailbox;
hgs
parents: 74
diff changeset
    30
    apiMailbox.setId(mailbox.id().id());
hgs
parents: 74
diff changeset
    31
    apiMailbox.setName(mailbox.name());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
    NmMailbox tmp(mailbox);
76
hgs
parents: 74
diff changeset
    33
    apiMailbox.setAddress(tmp.address().address());
hgs
parents: 74
diff changeset
    34
    return apiMailbox;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    37
/*!
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    38
   converts NmFolder to client api NmFolder
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
 */
76
hgs
parents: 74
diff changeset
    40
NmApiFolder NmToApiConverter::NmFolder2NmApiFolder(const NmFolder &folder)
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
{
43
hgs
parents: 23
diff changeset
    42
    NM_FUNCTION;
hgs
parents: 23
diff changeset
    43
    
76
hgs
parents: 74
diff changeset
    44
    NmApiFolder apiFolder;
hgs
parents: 74
diff changeset
    45
hgs
parents: 74
diff changeset
    46
    apiFolder.setParentFolderId(folder.parentId().id());
hgs
parents: 74
diff changeset
    47
    apiFolder.setId(folder.folderId().id());
hgs
parents: 74
diff changeset
    48
    apiFolder.setName(folder.name());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
76
hgs
parents: 74
diff changeset
    50
    switch ( folder.folderType() )
hgs
parents: 74
diff changeset
    51
        {
hgs
parents: 74
diff changeset
    52
        case NmFolderInbox:
hgs
parents: 74
diff changeset
    53
        	apiFolder.setFolderType(EmailClientApi::Inbox);
hgs
parents: 74
diff changeset
    54
            break;
hgs
parents: 74
diff changeset
    55
        case NmFolderOutbox:
hgs
parents: 74
diff changeset
    56
        	apiFolder.setFolderType(EmailClientApi::Outbox);
hgs
parents: 74
diff changeset
    57
            break;
hgs
parents: 74
diff changeset
    58
        case NmFolderDrafts:
hgs
parents: 74
diff changeset
    59
        	apiFolder.setFolderType(EmailClientApi::Drafts);
hgs
parents: 74
diff changeset
    60
            break;
hgs
parents: 74
diff changeset
    61
        case NmFolderSent:
hgs
parents: 74
diff changeset
    62
        	apiFolder.setFolderType(EmailClientApi::Sent);
hgs
parents: 74
diff changeset
    63
            break;
hgs
parents: 74
diff changeset
    64
        case NmFolderDeleted:
hgs
parents: 74
diff changeset
    65
        	apiFolder.setFolderType(EmailClientApi::Deleted);
hgs
parents: 74
diff changeset
    66
            break;
hgs
parents: 74
diff changeset
    67
        case NmFolderOther:
hgs
parents: 74
diff changeset
    68
        default:
hgs
parents: 74
diff changeset
    69
        	apiFolder.setFolderType(EmailClientApi::EOther);
hgs
parents: 74
diff changeset
    70
            break;
hgs
parents: 74
diff changeset
    71
        }
hgs
parents: 74
diff changeset
    72
    return apiFolder;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    73
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    74
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    75
/*!
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    76
   converts NmMessageEnvelope to client api NmApiMessageEnvelope
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
 */
76
hgs
parents: 74
diff changeset
    78
NmApiMessageEnvelope NmToApiConverter::NmMessageEnvelope2NmApiMessageEnvelope(
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    79
    const NmMessageEnvelope &envelope)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    80
{
43
hgs
parents: 23
diff changeset
    81
    NM_FUNCTION;
hgs
parents: 23
diff changeset
    82
    
76
hgs
parents: 74
diff changeset
    83
    NmApiMessageEnvelope apiEnv;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
    
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    85
    QList<NmAddress> to = envelope.toRecipients();
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
    86
    QList<NmAddress> cc = envelope.ccRecipients();
68
hgs
parents: 48
diff changeset
    87
    QList<NmAddress> bcc = envelope.bccRecipients();
76
hgs
parents: 74
diff changeset
    88
    QList<NmApiEmailAddress> to_api = NmAddress2QString(to);
hgs
parents: 74
diff changeset
    89
    QList<NmApiEmailAddress> cc_api = NmAddress2QString(cc);
hgs
parents: 74
diff changeset
    90
    QList<NmApiEmailAddress> bcc_api = NmAddress2QString(bcc);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
76
hgs
parents: 74
diff changeset
    92
    apiEnv.setToRecipients(to_api);
hgs
parents: 74
diff changeset
    93
    apiEnv.setCcRecipients(cc_api);
hgs
parents: 74
diff changeset
    94
    apiEnv.setBccRecipients(bcc_api);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
76
hgs
parents: 74
diff changeset
    96
    apiEnv.setHasAttachments(envelope.hasAttachments());
hgs
parents: 74
diff changeset
    97
    apiEnv.setId(envelope.messageId().id());
hgs
parents: 74
diff changeset
    98
    apiEnv.setIsForwarded(envelope.isForwarded());
hgs
parents: 74
diff changeset
    99
    apiEnv.setIsRead(envelope.isRead());
hgs
parents: 74
diff changeset
   100
    apiEnv.setIsReplied(envelope.isReplied());
hgs
parents: 74
diff changeset
   101
    apiEnv.setParentFolder(envelope.folderId().id());
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
76
hgs
parents: 74
diff changeset
   103
    apiEnv.setSender(envelope.sender().address());
hgs
parents: 74
diff changeset
   104
    apiEnv.setSentTime(envelope.sentTime());
hgs
parents: 74
diff changeset
   105
    apiEnv.setSubject(envelope.subject());
74
hgs
parents: 68
diff changeset
   106
    NmId mailboxId(envelope.mailboxId());
76
hgs
parents: 74
diff changeset
   107
    apiEnv.setMailboxId(mailboxId.id());
hgs
parents: 74
diff changeset
   108
    apiEnv.setFlags(static_cast<NmApiMessageFlags>(static_cast<int>(envelope.flags())), true);
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
76
hgs
parents: 74
diff changeset
   110
    return apiEnv;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
23
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   113
/*!
2dc6caa42ec3 Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 20
diff changeset
   114
   converts QList of NmAddresses to Qlist of email client apis NmApiEmailAddresses
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
 */
76
hgs
parents: 74
diff changeset
   116
QList<NmApiEmailAddress> NmToApiConverter::NmAddress2QString(
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
    const QList<NmAddress> &addresses)
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
{
43
hgs
parents: 23
diff changeset
   119
    NM_FUNCTION;
hgs
parents: 23
diff changeset
   120
    
76
hgs
parents: 74
diff changeset
   121
    QList<NmApiEmailAddress> nmAddresses;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    for (int i = 0; i < addresses.count(); i++) {
76
hgs
parents: 74
diff changeset
   123
        NmApiEmailAddress addr;
18
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
        addr.setAddress(addresses[i].address());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
        addr.setDisplayName(addresses[i].displayName());
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
        nmAddresses << addr;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
    }
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
    return nmAddresses;
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
}
578830873419 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
68
hgs
parents: 48
diff changeset
   133
/*!
hgs
parents: 48
diff changeset
   134
   converts nmmessage to client api NmApiMessage
hgs
parents: 48
diff changeset
   135
 */
76
hgs
parents: 74
diff changeset
   136
NmApiMessage NmToApiConverter::NmMessage2NmApiMessage(NmMessage &message)
68
hgs
parents: 48
diff changeset
   137
{
hgs
parents: 48
diff changeset
   138
    NM_FUNCTION;
hgs
parents: 48
diff changeset
   139
    
76
hgs
parents: 74
diff changeset
   140
    NmApiMessage apiMessage;
68
hgs
parents: 48
diff changeset
   141
    QList<NmMessagePart*> attachments;
hgs
parents: 48
diff changeset
   142
    message.attachmentList(attachments);
hgs
parents: 48
diff changeset
   143
hgs
parents: 48
diff changeset
   144
    if (attachments.size() > 0){
76
hgs
parents: 74
diff changeset
   145
        QList<NmApiAttachment> apiAttachments; 
68
hgs
parents: 48
diff changeset
   146
        for (int i = 0; i < attachments.size(); i++){
hgs
parents: 48
diff changeset
   147
            NmMessagePart *part = attachments.at(i);
76
hgs
parents: 74
diff changeset
   148
            if (part->contentType().compare(NmApiContentTypeTextPlain) != 0 && 
hgs
parents: 74
diff changeset
   149
                part->contentType().compare(NmApiContentTypeTextHtml) != 0) {
hgs
parents: 74
diff changeset
   150
                NmApiAttachment apiAttachment;
hgs
parents: 74
diff changeset
   151
                apiAttachment.setFileName(part->attachmentName());
hgs
parents: 74
diff changeset
   152
                apiAttachment.setId(part->partId().id());
hgs
parents: 74
diff changeset
   153
                apiAttachment.setContentType(part->contentType());
hgs
parents: 74
diff changeset
   154
                apiAttachment.setSize(part->size());
hgs
parents: 74
diff changeset
   155
                apiAttachments.append(apiAttachment);
68
hgs
parents: 48
diff changeset
   156
            }
hgs
parents: 48
diff changeset
   157
        }
76
hgs
parents: 74
diff changeset
   158
        apiMessage.setAttachments(apiAttachments);
68
hgs
parents: 48
diff changeset
   159
    }
hgs
parents: 48
diff changeset
   160
    
76
hgs
parents: 74
diff changeset
   161
    NmApiMessageEnvelope apiEnvelope = NmMessageEnvelope2NmApiMessageEnvelope(message.envelope());
hgs
parents: 74
diff changeset
   162
    apiMessage.setEnvelope(apiEnvelope);
68
hgs
parents: 48
diff changeset
   163
    const NmMessagePart *plaintext = message.plainTextBodyPart();
hgs
parents: 48
diff changeset
   164
    if (plaintext) {
76
hgs
parents: 74
diff changeset
   165
        NmApiTextContent apiPlainText;
hgs
parents: 74
diff changeset
   166
        apiPlainText.setContent(plaintext->textContent());
hgs
parents: 74
diff changeset
   167
        apiPlainText.setId(plaintext->partId().id());
hgs
parents: 74
diff changeset
   168
        apiPlainText.setContentType(plaintext->contentType());
hgs
parents: 74
diff changeset
   169
        apiPlainText.setSize(plaintext->size());
hgs
parents: 74
diff changeset
   170
        apiMessage.setPlainTextContent(apiPlainText);
68
hgs
parents: 48
diff changeset
   171
    }
hgs
parents: 48
diff changeset
   172
    
hgs
parents: 48
diff changeset
   173
    const NmMessagePart *htmlcontent = message.htmlBodyPart();
hgs
parents: 48
diff changeset
   174
    if (htmlcontent) {
76
hgs
parents: 74
diff changeset
   175
        NmApiTextContent apiHtmlContent;
hgs
parents: 74
diff changeset
   176
        apiHtmlContent.setContent(htmlcontent->textContent());
hgs
parents: 74
diff changeset
   177
        apiHtmlContent.setId(htmlcontent->partId().id());
hgs
parents: 74
diff changeset
   178
        apiHtmlContent.setContentType(htmlcontent->contentType());
hgs
parents: 74
diff changeset
   179
        apiHtmlContent.setSize(htmlcontent->size());
hgs
parents: 74
diff changeset
   180
        apiMessage.setHtmlContent(apiHtmlContent);
68
hgs
parents: 48
diff changeset
   181
    }
hgs
parents: 48
diff changeset
   182
    
76
hgs
parents: 74
diff changeset
   183
    return apiMessage;
hgs
parents: 74
diff changeset
   184
}
68
hgs
parents: 48
diff changeset
   185
}
76
hgs
parents: 74
diff changeset
   186
hgs
parents: 74
diff changeset
   187
hgs
parents: 74
diff changeset
   188