upload tizen1.0 source
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Messaging / MessagingController.cpp
index 1c82123..9b7759c 100755 (executable)
@@ -126,15 +126,15 @@ void MessagingController::OnAnswerReceived(const Api::Messaging::EventMessagingS
                DPL::StaticPointerCast<EventMessagingServicePrivateData>(event->getPrivateData());
        
        WrtDeviceApis::CommonsJavaScript::JSCallbackManagerPtr callbackManager = privateData->getCallbackManager();             //get callback manager
-       JSContextRef l_globalContext = callbackManager->getContext();
+       JSContextRef globalContext = callbackManager->getContext();
 
        int MessagingServiceEventType = event->getEventType();
        LogDebug(" MessagingServiceEvent Type :" << MessagingServiceEventType); 
 
        ConverterMessageFactory::ConverterType converter =
-                ConverterMessageFactory::getConverter(l_globalContext);
+                ConverterMessageFactory::getConverter(globalContext);
 
-       if (MessagingServiceEventType == EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_BODY)
+       if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_BODY)
        {       
                LogDebug(" Message Sync Folder");
                LogDebug("Operation ID : " << event->opId);
@@ -153,7 +153,7 @@ void MessagingController::OnAnswerReceived(const Api::Messaging::EventMessagingS
                        callbackManager->callOnError(msg);
                }
        }
-       else if (MessagingServiceEventType == EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_ATTACHMENT)
+       else if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_LOAD_MESSAGE_ATTACHMENT)
        {
                if (event->getExceptionCode() == ExceptionCodes::None)
                {
@@ -166,7 +166,7 @@ void MessagingController::OnAnswerReceived(const Api::Messaging::EventMessagingS
                        callbackManager->callOnError();
                }
        }
-       else if (MessagingServiceEventType == EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_SYNC)
+       else if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_SYNC)
        {       
                LogDebug(" Message Sync :");
                LogDebug("Operation ID : " << event->opId);
@@ -182,7 +182,7 @@ void MessagingController::OnAnswerReceived(const Api::Messaging::EventMessagingS
                        callbackManager->callOnError();
                }
        }
-       else if (MessagingServiceEventType == EventMessagingService::MESSAGING_SERVICE_EVENT_TYPE_SYNC_FOLDER)
+       else if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_SYNC_FOLDER)
        {       
                LogDebug(" Message Sync Folder");
                LogDebug("Operation ID : " << event->opId);
@@ -197,9 +197,59 @@ void MessagingController::OnAnswerReceived(const Api::Messaging::EventMessagingS
                        callbackManager->callOnError();
                }
        }
+       else if (MessagingServiceEventType == MESSAGING_SERVICE_EVENT_TYPE_SEND_MESSAGE)
+       {
+               JSValueRef error = NULL;
+               WrtDeviceApis::CommonsJavaScript::JSCallbackManagerPtr recipientCallbackManager = privateData->getRecipientCallbackManager();
+
+               if (WrtDeviceApis::Commons::ExceptionCodes::None != event->getExceptionCode()) {
+                       switch (event->getExceptionCode()) {
+                               case WrtDeviceApis::Commons::ExceptionCodes::PlatformException:
+                               case WrtDeviceApis::Commons::ExceptionCodes::ConversionException:
+                                       error = JSTizenExceptionFactory::makeErrorObject(globalContext,           
+                                                 JSTizenException::INVALID_VALUES_ERROR, JSMESSAGING_EXCEPTION_MSG_INVALID_ARGUMENT);
+                               default:
+                                       error = JSTizenExceptionFactory::makeErrorObject(globalContext,           
+                                                 JSTizenException::UNKNOWN_ERROR, JSMESSAGING_EXCEPTION_MSG_UNKNOWN);
+                       }
+                 }
+                 
+                 ConverterMessage converter(globalContext);
+                
+                 //remove operation handle
+                 if (event->m_messagingService)
+                 {
+                         LogDebug("Operation ID : " << event->opId);
+                         event->m_messagingService->deleteOpId(event->opId); 
+                 }
+                 if (WrtDeviceApis::Commons::ExceptionCodes::None == event->getExceptionCode()) 
+                 {
+                         LogDebug(" success size : " << event->m_successRecipients.size());
+                         std::vector<JSValueRef> successRecipentList;
+                         
+                         int cnt = event->m_successRecipients.size();
+                         LogDebug( "success count : " << cnt);
+               
+                         for(int index = 0; index < cnt; index++)
+                         {
+                                 LogDebug( "success recipent : " << event->m_successRecipients[index]);
+                                 successRecipentList.push_back(converter.toJSValueRef(event->m_successRecipients[index]));
+                         }
+                                         
+                         JSObjectRef result = JSObjectMakeArray(globalContext, cnt, successRecipentList.data(), NULL);
+                         callbackManager->callOnSuccess(result);
+                          
+                 } 
+                 else {
+                         //JSValueRef params[] = { error, recipient };
+                         //callbackManager->callOnError( params, sizeof(params) / sizeof(params[0]));
+                         callbackManager->callOnError(error);
+                 }
+               
+       }
        else 
        {
-               callbackManager->callOnError(JSValueMakeUndefined(l_globalContext));
+               callbackManager->callOnError(JSValueMakeUndefined(globalContext));
        }
        
 }
@@ -231,7 +281,7 @@ void MessagingController::OnAnswerReceived(const Api::Messaging::EventSendMessag
     }
                
        ConverterMessage converter(context);
-       JSValueRef recipient = converter.toJSValueRef(event->getRecipient());
+       //JSValueRef recipient = converter.toJSValueRef(event->getRecipient());
 
        //remove operation handle
        if (event->m_messagingService)