diff -r 64e38f08e49c -r 47d84de1c893 emailservices/nmclientapi/src/nmapitypesconverter.cpp --- a/emailservices/nmclientapi/src/nmapitypesconverter.cpp Fri Sep 17 08:27:21 2010 +0300 +++ b/emailservices/nmclientapi/src/nmapitypesconverter.cpp Mon Oct 04 00:05:37 2010 +0300 @@ -60,11 +60,14 @@ QList to = envelope.toRecipients(); QList cc = envelope.ccRecipients(); + QList bcc = envelope.bccRecipients(); QList to_api = NmAddress2QString(to); QList cc_api = NmAddress2QString(cc); + QList bcc_api = NmAddress2QString(bcc); api_env.setToRecipients(to_api); api_env.setCcRecipients(cc_api); + api_env.setBccRecipients(bcc_api); api_env.setHasAttachments(envelope.hasAttachments()); api_env.setId(envelope.messageId().id()); @@ -76,6 +79,8 @@ api_env.setSender(envelope.sender().address()); api_env.setSentTime(envelope.sentTime()); api_env.setSubject(envelope.subject()); + api_env.setMailboxId(envelope.messageId().id()); + api_env.setFlags(static_cast(static_cast(envelope.flags())), true); return api_env; } @@ -100,3 +105,55 @@ return nmAddresses; } +/*! + converts nmmessage to client api NmApiMessage + */ +EmailClientApi::NmApiMessage NmToApiConverter::NmMessage2NmApiMessage(NmMessage &message) +{ + NM_FUNCTION; + + EmailClientApi::NmApiMessage api_message; + QList attachments; + message.attachmentList(attachments); + + if (attachments.size() > 0){ + QList api_attachments; + for (int i = 0; i < attachments.size(); i++){ + NmMessagePart *part = attachments.at(i); + if (part->contentType().compare(EmailClientApi::NmApiContentTypeTextPlain) != 0 && + part->contentType().compare(EmailClientApi::NmApiContentTypeTextHtml) != 0) { + EmailClientApi::NmApiAttachment api_attachment; + api_attachment.setFileName(part->attachmentName()); + api_attachment.setId(part->partId().id()); + api_attachment.setContentType(part->contentType()); + api_attachment.setSize(part->size()); + api_attachments.append(api_attachment); + } + } + api_message.setAttachments(api_attachments); + } + + EmailClientApi::NmApiMessageEnvelope api_envelope = NmMessageEnvelope2NmApiMessageEnvelope(message.envelope()); + api_message.setEnvelope(api_envelope); + const NmMessagePart *plaintext = message.plainTextBodyPart(); + if (plaintext) { + EmailClientApi::NmApiTextContent api_plaintext; + api_plaintext.setContent(plaintext->textContent()); + api_plaintext.setId(plaintext->partId().id()); + api_plaintext.setContentType(plaintext->contentType()); + api_plaintext.setSize(plaintext->size()); + api_message.setPlainTextContent(api_plaintext); + } + + const NmMessagePart *htmlcontent = message.htmlBodyPart(); + if (htmlcontent) { + EmailClientApi::NmApiTextContent api_htmlcontent; + api_htmlcontent.setContent(htmlcontent->textContent()); + api_htmlcontent.setId(htmlcontent->partId().id()); + api_htmlcontent.setContentType(htmlcontent->contentType()); + api_htmlcontent.setSize(htmlcontent->size()); + api_message.setHtmlContent(api_htmlcontent); + } + + return api_message; +}