MessagingExportedNames[MESSAGING_FUNCTION_API_LOAD_MESSAGE_BODY]);
TIZEN_ASYNC_CBM_ACCESS_HANDLER(status, context, callbackManager);
- if (JSValueIsObject(context, arguments[0]) && Validator(context).isCallback(arguments[0])) //check
+ if ( JSValueIsObject(context, arguments[0]) )
{
- callbackManager->setOnSuccess(converter->toFunctionOrNull(arguments[0]));
- if (converter->toFunctionOrNull(arguments[1]) && Validator(context).isCallback(arguments[1]) )
- {
- callbackManager->setOnError(converter->toFunctionOrNull(arguments[1]));
+ switch(argumentCount){
+ case 3:
+ {
+ if ( Validator(context).isCallback(arguments[2]))
+ {
+ callbackManager->setOnError(converter->toFunctionOrNull(arguments[2]));
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ }
+ }
+ case 2:
+ {
+ if ( Validator(context).isCallback(arguments[1]))
+ {
+ callbackManager->setOnSuccess(converter->toFunctionOrNull(arguments[1]));
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ }
+ }
}
- Api::Messaging::EventMessagingServicePtr event(new Api::Messaging::EventMessagingService()); //create event
- if ( JSValueIsObject(context, arguments[2]) )
- {
- event->m_message = converter->toIMessage(arguments[2]) ;
+ Api::Messaging::EventMessagingServicePtr event(new Api::Messaging::EventMessagingService()); //create even
+ event->m_message = converter->toIMessage(arguments[0]) ;
+ if ( event->m_message )
+ {
+ int msgType = event->m_message->getMessageType();
LogDebug("Message Type =" << event->m_message->getMessageType());
- privateData->setMessageJSValueRef(arguments[2]); //set Message JSValueRef.
- }
- else
- {
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ if (msgType == Api::Messaging::EMAIL)
+ {
+ Api::Messaging::IEmailPtr email = Api::Messaging::MessageFactory::convertToEmail(event->m_message);
+ if (email && email->isBodyDownloaded() > 0)
+ {
+ callbackManager->callOnSuccess(arguments[0]);
+ return JSValueMakeNull(context);
+ }
+ }
+ else
+ {
+ callbackManager->callOnSuccess(arguments[0]);
+ return JSValueMakeNull(context);
+ }
+
+ privateData->setMessageJSValueRef(arguments[0]); //set Message JSValueRef.
}
- IMessagingServicePtr imessagingService = priv->getObject();
+ IMessagingServicePtr imessagingService = priv->getObject();
int opId = imessagingService->createOpId(MESSAGING_SERVICE_OP_DOWNLOAD_BODY);
LogDebug("Operation ID is = " << opId);
Try {
- if (JSValueIsObject(context, arguments[0]) && Validator(context).isCallback(arguments[0])) //check
+ //check permission.
+ AceSecurityStatus status = MESSAGING_CHECK_ACCESS(
+ priv->getContext(),
+ MessagingExportedNames[MESSAGING_FUNCTION_API_LOAD_MESSAGE_ATTACHMENT]);
+ TIZEN_ASYNC_CBM_ACCESS_HANDLER(status, context, callbackManager);
+
+ if (JSValueIsObject(context, arguments[0]) && !JSValueIsNull(context, arguments[0]))
{
EventMessagingServicePrivateDataPtr privateData( new EventMessagingServicePrivateData(callbackManager) );
+ if (!privateData)
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::UNKNOWN_ERROR, JSMESSAGING_EXCEPTION_MSG_UNKNOWN);
- callbackManager->setOnSuccess(converter->toFunctionOrNull(arguments[0]));
- if (converter->toFunctionOrNull(arguments[1]) && Validator(context).isCallback(arguments[1]) )
- {
- callbackManager->setOnError(converter->toFunctionOrNull(arguments[1]));
+ switch(argumentCount){
+ case 3:
+ {
+ if ( Validator(context).isCallback(arguments[2]))
+ {
+ callbackManager->setOnError(converter->toFunctionOrNull(arguments[2]));
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ }
+ }
+ case 2:
+ {
+ if ( Validator(context).isCallback(arguments[1]))
+ {
+ callbackManager->setOnSuccess(converter->toFunctionOrNull(arguments[1]));
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ }
+ }
}
- //check permission.
- AceSecurityStatus status = MESSAGING_CHECK_ACCESS(
- priv->getContext(),
- MessagingExportedNames[MESSAGING_FUNCTION_API_LOAD_MESSAGE_ATTACHMENT]);
- TIZEN_ASYNC_CBM_ACCESS_HANDLER(status, context, callbackManager);
-
- IMessagingServicePtr imessagingService = priv->getObject();
Api::Messaging::EventMessagingServicePtr event(new Api::Messaging::EventMessagingService()); //create event
-
- LogInfo("event");
-
event->setEventType(EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_ATTACHMENT);
event->setPrivateData(DPL::StaticPointerCast<WrtDeviceApis::Commons::IEventPrivateData>(privateData));
event->setForAsynchronousCall(&MessagingController::getInstance());
- LogInfo("agu");
- if (argumentCount == 3 && !JSValueIsNull(context, arguments[2]))
- {
- Api::Messaging::IAttachmentPtr iAttchmentPtr = converter->toIAttachment(arguments[2]);
- privateData->setMessageJSValueRef(arguments[2]); //set Message JSValueRef.
- if (iAttchmentPtr)
- {
- event->m_attachment = iAttchmentPtr;
- event->m_message = event->m_attachment->getMessage();
-
- if (!event->m_message)
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::UNKNOWN_ERROR, JSMESSAGING_EXCEPTION_MSG_UNKNOWN);
- }
- else
- {
+
+ Api::Messaging::IAttachmentPtr iAttchmentPtr = converter->toIAttachment(arguments[0]);
+ if (iAttchmentPtr)
+ {
+ event->m_attachment = iAttchmentPtr;
+ event->m_message = event->m_attachment->getMessage();
+
+ if (!event->m_message)
return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::NOT_FOUND_ERROR, JSMESSAGING_EXCEPTION_MSG_NOT_FOUND);
- }
+ JSTizenException::UNKNOWN_ERROR, JSMESSAGING_EXCEPTION_MSG_UNKNOWN);
+
+ privateData->setMessageJSValueRef(arguments[0]); //set attachment JSValueRef.
}
else
{
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::NOT_FOUND_ERROR, JSMESSAGING_EXCEPTION_MSG_NOT_FOUND);
}
-
- int opId = imessagingService->createOpId(MESSAGING_SERVICE_OP_DOWNLOAD_ATTACHMENT);
- LogDebug("Operation ID is = " << opId);
-
- event->opId = opId;
- imessagingService->setMessageToOpId(opId, event->m_message);
- LogInfo("pendingOperation");
- //JSValueRef pendingOperation = WrtDeviceApis::CommonsJavaScript::makePendingOperation(globalContext, event); //create pendingOperation.
- Api::Messaging::ReqReceiverMessageSingleton::Instance().loadMessageAttachment(event); //load message Body
-
- return converter->toJSValueRef(event->opId);
+ IMessagingServicePtr imessagingService = priv->getObject();
+ if (imessagingService)
+ {
+ int opId = imessagingService->createOpId(MESSAGING_SERVICE_OP_DOWNLOAD_ATTACHMENT);
+ LogDebug("Operation ID is = " << opId);
+ event->opId = opId;
+ imessagingService->setMessageToOpId(opId, event->m_message);
+
+ //JSValueRef pendingOperation = WrtDeviceApis::CommonsJavaScript::makePendingOperation(globalContext, event); //create pendingOperation.
+ Api::Messaging::ReqReceiverMessageSingleton::Instance().loadMessageAttachment(event); //load message Body
+
+ return converter->toJSValueRef(event->opId);
+ }
+ else
+ {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::NOT_FOUND_ERROR, JSMESSAGING_EXCEPTION_MSG_NOT_FOUND);
+ }
+
+
}
else
{
return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+ JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
}
}
IMessagingServicePtr imessagingService = priv->getObject(); //get MessagingService.
-
Api::Messaging::MessageType msgType = (Api::Messaging::MessageType)imessagingService->getType();
LogInfo("msgType :" << msgType);
if (JSValueIsObject(context, arguments[0]) && !Validator(context).isCallback(arguments[0])) //check
{
-
AceSecurityStatus status = MESSAGING_CHECK_ACCESS(
priv->getContext(),
MessagingExportedNames[MESSAGING_FUNCTION_API_SYNC_FOLDER]);
IMessageFolderPtr folder = converter->toIMessageFolder(arguments[0]);
if ( folder )
{
- event->m_folder_name = folder->getName(); //it will be changed to the folder ptr
+ //event->m_folder_name = folder->getName(); //it will be changed to the folder ptr
+ event->m_folder_name = folder->getPath(); //it will be changed to the folder ptr
}
if ( argumentCount > 1 )
JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_TYPE_MISMATCH);
}
}
+ Catch(WrtDeviceApis::Commons::UnsupportedException) {
+ return JSTizenExceptionFactory::postException(context, exception,
+ JSTizenException::NOT_SUPPORTED_ERROR, JSMESSAGING_EXCEPTION_MSG_NOT_SUPPORTED);
+ }
Catch(WrtDeviceApis::Commons::ConversionException) {
return JSTizenExceptionFactory::postException(context, exception,
JSTizenException::TYPE_MISMATCH_ERROR, JSMESSAGING_EXCEPTION_MSG_TYPE_MISMATCH);