X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FMessaging%2FConverterMessage.cpp;h=18180803dce452c0b4574d98e66c79ccf27f6020;hb=f39631eec68093eb85a63ae38af1ae42dd35bc57;hp=5bf550902840405b665e7a198807ea6267247b28;hpb=2d625efbc5a36fee787a1860fd2eb285abf0e4a6;p=framework%2Fweb%2Fwrt-plugins-tizen.git diff --git a/src/Messaging/ConverterMessage.cpp b/src/Messaging/ConverterMessage.cpp index 5bf5509..1818080 100644 --- a/src/Messaging/ConverterMessage.cpp +++ b/src/Messaging/ConverterMessage.cpp @@ -32,6 +32,7 @@ #include "JSMessageFolder.h" #include +#include #if 0 // MESSAGING ATTACHMENT IS BLOCKED #include @@ -73,7 +74,7 @@ JSContextRef ConverterMessage::toJSGlobalContext(JSObjectRef arg) static_cast::Type*>(JSObjectGetPrivate( arg)); if (!priv) { - LogError("Private object not initialized"); + LoggerE("Private object not initialized"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } @@ -120,7 +121,7 @@ JSValueRef ConverterMessage::toJSValueRef(const IMessagePtr& arg) return JSMessage::createJSObject(m_context, arg); default: - LogError("unknown type"); + LoggerE("unknown type"); Throw(WrtDeviceApis::Commons::ConversionException); } } @@ -136,7 +137,7 @@ JSValueRef ConverterMessage::toJSValueRef(const IMessagePtr& arg, return JSMessage::createJSObject(m_context, arg, listener); default: - LogError("unknown type"); + LoggerE("unknown type"); Throw(WrtDeviceApis::Commons::ConversionException); } } @@ -207,19 +208,19 @@ JSValueRef ConverterMessage::keyToJSValue(JSValueRef value, JSValueRef retVal = NULL; if (NULL == value) { - LogError("jsValue null"); + LoggerE("jsValue null"); Throw(WrtDeviceApis::Commons::ConversionException); } JSObjectRef argObj = JSValueToObject(m_context, value, NULL); if (NULL == argObj) { - LogError("conversion to jsobject fail"); + LoggerE("conversion to jsobject fail"); Throw(WrtDeviceApis::Commons::ConversionException); } const JSStringRef keyJSStr = JSStringCreateWithUTF8CString(key.c_str()); retVal = JSObjectGetProperty(m_context, argObj, keyJSStr, NULL); JSStringRelease(keyJSStr); if (NULL == retVal) { - LogWarning("key \"" << key << "\" not found in JSValue map"); + LoggerW("key \"" << key << "\" not found in JSValue map"); } // return NULL if no key in map return retVal; @@ -232,9 +233,9 @@ IMessagePtr ConverterMessage::toIMessage(JSValueRef arg) IMessagePtr ConverterMessage::toIMessage(JSObjectRef arg) { - LogDebug("message object=" << arg); + LoggerD("message object=" << arg); if (!arg) { - LogError("Object is null"); + LoggerE("Object is null"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } @@ -243,13 +244,13 @@ IMessagePtr ConverterMessage::toIMessage(JSObjectRef arg) JSMessagePrivateObject* priv = static_cast(JSObjectGetPrivate(arg)); if (!priv) { - LogError("Private object not initialized"); + LoggerE("Private object not initialized"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } retVal = priv->getObject(); if (!retVal) { - LogError("Message private object not initialized"); + LoggerE("Message private object not initialized"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } @@ -265,7 +266,7 @@ IAttachmentPtr ConverterMessage::toIAttachment(JSObjectRef arg) { if (!arg) { - LogError("Object is Null"); + LoggerE("Object is Null"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } @@ -274,14 +275,14 @@ IAttachmentPtr ConverterMessage::toIAttachment(JSObjectRef arg) static_cast(JSObjectGetPrivate(arg)); if (!priv) { - LogError("Private object not initialized"); + LoggerE("Private object not initialized"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } retVal = priv->getObject(); if (!retVal) { - LogError("Message private object not initialized"); + LoggerE("Message private object not initialized"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } @@ -297,7 +298,7 @@ IMessageFolderPtr ConverterMessage::toIMessageFolder(JSObjectRef arg) { if (!arg) { - LogError("Object is Null"); + LoggerE("Object is Null"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } @@ -306,14 +307,14 @@ IMessageFolderPtr ConverterMessage::toIMessageFolder(JSObjectRef arg) static_cast(JSObjectGetPrivate(arg)); if (!priv) { - LogError("Private object not initialized"); + LoggerE("Private object not initialized"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } retVal = priv->getObject(); if (!retVal) { - LogError("Message private object not initialized"); + LoggerE("Message private object not initialized"); ThrowMsg(WrtDeviceApis::Commons::NullPointerException, "Private object not initialized"); } @@ -338,48 +339,58 @@ Recipients ConverterMessage::toRecipients(JSValueRef arg) return retVal; } -OnMessagesChanged ConverterMessage::toMessageMultifunctions(JSValueRef argument) -{ - OnMessagesChanged result; - Validator validator(m_context); - JSObjectRef objectCallbacks = toJSObjectRef(argument); - std::string callbackName = toString(argument); - int index = 0; - - LogDebug("Enter\n"); - - for (index = 0; index < MESSAGING_MULTI_FUNTION_MAX; index++) - { - ScopedJSStringRef propName(toJSStringRef(m_callbackNames[index].addedFunction)); - - if (JSObjectHasProperty(m_context, objectCallbacks, propName.get())) - { - LogDebug("Callback name :" << m_callbackNames[index].addedFunction << " " - << m_callbackNames[index].updatedFunction << " " << m_callbackNames[index].removedFunction); - - result.messagesAdded = JSUtils::getJSPropertyOrUndefined(m_context, objectCallbacks, m_callbackNames[index].addedFunction); - result.messagesUpdated = JSUtils::getJSPropertyOrUndefined(m_context, objectCallbacks, m_callbackNames[index].updatedFunction); - result.messagesRemoved = JSUtils::getJSPropertyOrUndefined(m_context, objectCallbacks, m_callbackNames[index].removedFunction); - break; - } - - } - - if(result.messagesAdded == NULL || result.messagesUpdated == NULL || result.messagesRemoved == NULL) - { - LogError("OnMessagesChanged is not set"); - Throw(WrtDeviceApis::Commons::ConversionException); - } - - result.functionIndex = index; - - if ((!validator.isNullOrUndefined(result.messagesAdded) && !validator.isCallback(result.messagesAdded)) || - (!validator.isNullOrUndefined(result.messagesUpdated) && !validator.isCallback(result.messagesUpdated)) || - (!validator.isNullOrUndefined(result.messagesRemoved) && !validator.isCallback(result.messagesRemoved))) - { - LogError("java script call back set error"); - Throw(WrtDeviceApis::Commons::InvalidArgumentException); - } +OnMessagesChanged ConverterMessage::toMessageMultifunctions(JSValueRef argument, int multiFuntionType) +{ + LoggerD("Enter"); + + LoggerD("multiFuntionType : " << multiFuntionType); + + OnMessagesChanged result; + Validator validator(m_context); + JSObjectRef objectCallbacks = toJSObjectRef(argument); + + ScopedJSStringRef propNameAdded(toJSStringRef(m_callbackNames[multiFuntionType].addedFunction)); + ScopedJSStringRef propNameUpdated(toJSStringRef(m_callbackNames[multiFuntionType].updatedFunction)); + ScopedJSStringRef propNameRemoved(toJSStringRef(m_callbackNames[multiFuntionType].removedFunction)); + + if(JSObjectHasProperty(m_context, objectCallbacks, propNameAdded.get())) + { + LoggerD("added exist"); + result.messagesAdded = JSUtils::getJSPropertyOrUndefined(m_context, objectCallbacks, m_callbackNames[multiFuntionType].addedFunction); + if (validator.isNullOrUndefined(result.messagesAdded)) + result.messagesAdded = NULL; + else if (!validator.isCallback(result.messagesAdded)) { + LoggerD("is not Callback"); + ThrowMsg(ConversionException, "1nd argument's onsuccess attribute is not a 'function'"); + } + } + if(JSObjectHasProperty(m_context, objectCallbacks, propNameUpdated.get())) + { + LoggerD("updated exist"); + result.messagesUpdated = JSUtils::getJSPropertyOrUndefined(m_context, objectCallbacks, m_callbackNames[multiFuntionType].updatedFunction); + if (validator.isNullOrUndefined(result.messagesUpdated)) + result.messagesUpdated = NULL; + else if (!validator.isCallback(result.messagesUpdated)) { + LoggerD("is not Callback"); + ThrowMsg(ConversionException, "2nd argument's onsuccess attribute is not a 'function'"); + } + } + if(JSObjectHasProperty(m_context, objectCallbacks, propNameRemoved.get())) + { + LoggerD("removed exist"); + result.messagesRemoved = JSUtils::getJSPropertyOrUndefined(m_context, objectCallbacks, m_callbackNames[multiFuntionType].removedFunction); + if (validator.isNullOrUndefined(result.messagesRemoved)) + result.messagesRemoved = NULL; + else if (!validator.isCallback(result.messagesRemoved)) { + LoggerD("is not Callback"); + ThrowMsg(ConversionException, "3nd argument's onsuccess attribute is not a 'function'"); + } + } + + if(result.messagesAdded != NULL || result.messagesUpdated != NULL || result.messagesRemoved != NULL) + { + result.functionIndex = multiFuntionType; + } return result; } @@ -418,7 +429,7 @@ MessageType ConverterMessage::toMessageType(JSObjectRef arg) { // convert JSvalue to message type enum std::string strMsgType = toString(arg); - LogDebug("Messasge Type : " << strMsgType); + LoggerD("Messasge Type : " << strMsgType); if ( strMsgType.compare("messaging.sms") == 0 ) { @@ -441,7 +452,7 @@ MessageType ConverterMessage::toMessageType(JSObjectRef arg) std::string ConverterMessage::toMessageType( long msgtype ) { - LogDebug("Messasge Type : " << msgtype); + LoggerD("Messasge Type : " << msgtype); switch (msgtype) { @@ -458,7 +469,7 @@ std::string ConverterMessage::toMessageType( long msgtype ) MessageType ConverterMessage::toMessageType(std::string arg) { - LogDebug("Messasge Type : " << arg); + LoggerD("Messasge Type : " << arg); if ( arg.compare("messaging.sms") == 0 ) { @@ -475,14 +486,14 @@ MessageType ConverterMessage::toMessageType(std::string arg) else { std::string message = "Message type " + arg + " not supported."; - throw DeviceAPI::Common::InvalidValuesException(message.c_str()); + throw DeviceAPI::Common::TypeMismatchException(message.c_str()); } } std::string ConverterMessage::toMessageStatusType( long msgstatus ) { - LogDebug("Messasge Status : " << msgstatus); + LoggerD("Messasge Status : " << msgstatus); switch (msgstatus) { @@ -504,7 +515,7 @@ std::string ConverterMessage::toMessageStatusType( long msgstatus ) std::string ConverterMessage::convertIntToString( int msgInt ) { - LogDebug("input int : " << msgInt); + LoggerD("input int : " << msgInt); std::stringstream stream; stream << msgInt; return stream.str(); @@ -523,7 +534,7 @@ std::vector ConverterMessage::toVectorOfConversation(const JSV if( JSGetArrayLength(m_context, jsObject) == 0) { - LogError("this is empty conversation"); + LoggerE("this is empty conversation"); Throw(WrtDeviceApis::Commons::ConversionException); } @@ -547,7 +558,7 @@ AddressType ConverterMessage::toAddressType(JSValueRef arg) } else if ("bcc" == addressType) { return BCC_ADDRESS; } else { - LogError("unknown address type"); + LoggerE("unknown address type"); Throw(WrtDeviceApis::Commons::InvalidArgumentException); } }