#include "JSContactManager.h"
#include <string>
-#include <dpl/log/log.h>
#include <CommonsJavaScript/JSCallbackManager.h>
#include <CommonsJavaScript/Validator.h>
#include <CommonsJavaScript/Converter.h>
#include <CommonsJavaScript/JSUtils.h>
#include <CommonsJavaScript/JSPendingOperation.h>
-#include <JSTizenExceptionFactory.h>
-#include <JSTizenException.h>
#include <SecurityExceptions.h>
#include <FilterConverter.h>
#include "ContactFactory.h"
#include "ContactConverter.h"
#include "JSPerson.h"
#include "JSContactManagerChangeCallbackManager.h"
+#include "ContactFilterConverter.h"
+#include <ArgumentValidator.h>
+#include <JSWebAPIErrorFactory.h>
+#include <TimeTracer.h>
+#include <Logger.h>
+#include <Export.h>
+#include "ContactUtility.h"
namespace DeviceAPI {
namespace Contact {
{ 0, 0, 0 }
};
-JSClassRef JSContactManager::getClassRef()
+JSClassRef DLL_EXPORT JSContactManager::getClassRef()
{
if (!m_classRef) {
m_classRef = JSClassCreate(&m_classInfo);
void JSContactManager::Initialize(JSContextRef context,
JSObjectRef object)
{
- LogDebug("Entered");
+ LoggerD("Entered");
ContactManagerPtr contactManager = ContactFactory::getInstance().createContactManager();
ContactManagerController *priv = new ContactManagerController(context, contactManager);
void JSContactManager::Finalize(JSObjectRef object)
{
- LogDebug("entered");
+ LoggerD("entered");
ContactManagerController *priv = static_cast<ContactManagerController*>(JSObjectGetPrivate(object));
- LogInfo("Delete address book manager");
+ LoggerI("Delete address book manager");
delete priv;
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("Entered");
+ LoggerD("Entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr contactManager;
JSContextRef gContext;
ContactManagerController *controller;
contactManager = controller->getObject();
gContext = controller->getContext();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_ADDRESS_BOOKS);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
BasicValidator validator = BasicValidatorFactory::getValidator(context, exception);
- Try {
- if (argumentCount < 1)
- ThrowMsg(InvalidArgumentException, "1st argument must be a 'function'");
-
- if (!validator->isCallback(arguments[0]))
- ThrowMsg(InvalidArgumentException, "1st argument must be a 'function'");
-
- if (argumentCount >= 2)
- {
- if (validator->isCallback(arguments[1]))
- js2ndParamIsFunction = true;
-
- if (!js2ndParamIsFunction &&
- !JSValueIsNull(context, arguments[1]) &&
- !JSValueIsUndefined(context, arguments[1]))
- ThrowMsg(InvalidArgumentException, "2st argument must be a 'function' or a 'null");
- }
-
- } Catch(Exception ) {
- LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, _rethrown_exception.GetMessage());
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+ validator.toFunction(0, false);
+ JSObjectRef errorObj = validator.toFunction(1, true);
+ if(errorObj)
+ js2ndParamIsFunction = true;
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(gContext);
contactManager->getAddressBooks(dplEvent);
ContactAsyncCallbackManagerSingleton::Instance().registerCallbackManager(callbackManager, gContext);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
// return JSObjectMake(gContext, JSPendingOperation::getClassRef(), gcPendingOperation);
return JSValueMakeUndefined(context);
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("Entered");
+ LoggerD("Entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerController *priv =
static_cast<ContactManagerController*>(JSObjectGetPrivate(thisObject));
if (!priv) {
- LogError("private object is null");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("private object is null");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_DEFAULT_ADDRESS_BOOK);
contactManager = priv->getObject();
gContext = priv->getContext();
} Catch(Exception) {
- LogError("contact manager or context is null");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("contact manager or context is null");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(gContext);
Try {
contactManager->getDefaultAddressBook(dplEvent);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
if (!dplEvent->getResult() || !dplEvent->getDefaultAddressBookIsSet())
{
case ExceptionCodes::NotFoundException:
case ExceptionCodes::InvalidArgumentException:
- LogError("Not Found error");
+ LoggerE("Not Found error");
oss << "No default address book";
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, oss.str());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::NOT_FOUND_ERROR, oss.str());
break;
case ExceptionCodes::PlatformException:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
default:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
}
}
Try {
resultValue = converter->toJSValueRef(defaultAddressBook);
} Catch(Exception){
- LogError("Conversion error.");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Conversion error.");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
return resultValue;
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("Entered");
+ LoggerD("Entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerController *priv =
static_cast<ContactManagerController*>(JSObjectGetPrivate(thisObject));
if (!priv) {
- LogError("private object is null");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("private object is null");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_UNIFIED_ADDRESS_BOOK);
contactManager = priv->getObject();
gContext = priv->getContext();
} Catch(Exception) {
- LogError("contact manager or context is null");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("contact manager or context is null");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(gContext);
Try {
contactManager->getUnifiedAddressBook(dplEvent);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
if (!dplEvent->getResult() || !dplEvent->getUnifiedAddressBookIsSet())
{
case ExceptionCodes::NotFoundException:
case ExceptionCodes::InvalidArgumentException:
- LogError("Not Found error");
+ LoggerE("Not Found error");
oss << "No default address book";
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, oss.str());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::NOT_FOUND_ERROR, oss.str());
break;
case ExceptionCodes::PlatformException:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
default:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
}
}
Try {
resultValue = converter->toJSValueRef(unifiedAddressBook);
} Catch(Exception){
- LogError("Conversion error.");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Conversion error.");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
return resultValue;
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("Entered");
+ LoggerD("Entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerController *priv =
static_cast<ContactManagerController*>(JSObjectGetPrivate(thisObject));
if (!priv) {
- LogError("private object is null");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("private object is null");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_GET_ADDRESS_BOOK);
contactManager = priv->getObject();
gContext = priv->getContext();
} Catch(Exception) {
- LogError("contact manager or context is null");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
- }
-
- if (argumentCount < 1) {
- /* 1st Argument must be string. */
- LogError("1st argument must not be undefined.");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, "No AddressBook name 'undefined'");
+ LoggerE("contact manager or context is null");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(gContext);
std::string addressBookId;
- Try {
- addressBookId = converter->toString(arguments[0]);
- }
- Catch(Exception) {
- LogError("Error on conversion " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong argument");
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+ addressBookId = validator.toString(0, false);
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
EventContactManagerGetAddressBookPtr dplEvent(new EventContactManagerGetAddressBook());
Try {
contactManager->getAddressBook(dplEvent);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
if (!dplEvent->getResult() || !dplEvent->getAddressBookIsSet())
{
case ExceptionCodes::NotFoundException:
case ExceptionCodes::InvalidArgumentException:
- LogError("Not Found error : " << addressBookId);
- oss << "No Contact id '" << addressBookId << "'";
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, oss.str());
+ LoggerE("Not Found error : " << addressBookId);
+ oss << "No addressBookId id '" << addressBookId << "'";
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::NOT_FOUND_ERROR, oss.str());
break;
case ExceptionCodes::PlatformException:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
default:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
}
}
Try {
resultValue = converter->toJSValueRef(addressBook);
} Catch(Exception){
- LogError("Conversion error.");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Conversion error.");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
return resultValue;
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("entered");
+ LoggerD("entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr addressBook;
ContactManagerController *controller;
}
addressBook = controller->getObject();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_GET);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
- if (argumentCount < 1) {
- /* 1st Argument must be string. */
- LogError("1st argument must not be undefined.");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, "No Contact id 'undefined'");
- }
-
std::string id;
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(context);
- Try {
- id = converter->toString(arguments[0]);
- } Catch(Exception) {
- LogError("Error on conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments");
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+ id = validator.toString(0, false);
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
+ if(!ContactUtility::checkStrIsUInt(id))
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::INVALID_VALUES_ERROR, "");
+
EventContactManagerGetPtr dplEvent(new EventContactManagerGet());
dplEvent->setId(id);
Try {
addressBook->get(dplEvent);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
if (!dplEvent->getResult() || !dplEvent->getPersonIsSet())
{
case ExceptionCodes::NotFoundException:
case ExceptionCodes::InvalidArgumentException:
- LogError("Not Found error : " << id);
+ LoggerE("Not Found error : " << id);
oss << "No Person id '" << id << "'";
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, oss.str());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::NOT_FOUND_ERROR, oss.str());
break;
case ExceptionCodes::PlatformException:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
default:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
}
}
Try {
result = converter->toJSValueRef(person);
} Catch(Exception) {
- LogError("Error on conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on conversion : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
return result;
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("entered");
+ LoggerD("entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr addressBook;
ContactManagerController *controller;
}
addressBook = controller->getObject();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_UPDATE);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
- Try {
- if (argumentCount < 1)
- ThrowMsg(InvalidArgumentException, "1st argument is an 'undefined'.");
-
- if (!JSPerson::isObjectOfClass(context, arguments[0]))
- ThrowMsg(InvalidArgumentException, "1st argument is not a 'Contact object'.");
-
- } Catch(Exception ) {
- LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "1st argument must be a 'Contact object'");
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+ validator.toObject(0, false);
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
PersonPtr person(NULL);
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(context);
Try {
+ if (!JSPerson::isObjectOfClass(context, arguments[0]))
+ ThrowMsg(InvalidArgumentException, "1st argument is not a 'Contact object'.");
person = converter->toPerson(arguments[0]);
} Catch(Exception) {
- LogError("Error on conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "1st argument is not a 'Contact object'");
+ LoggerE("Error on conversion : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "1st argument is not a 'Contact object'");
}
EventContactManagerUpdatePtr dplEvent(new EventContactManagerUpdate());
Try {
addressBook->update(dplEvent);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
if (!dplEvent->getResult())
{
case ExceptionCodes::NotFoundException:
case ExceptionCodes::InvalidArgumentException:
- oss << "No Contact id '" << person->getId() << "'";
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, oss.str());
+ oss << "No id '" << person->getId() << "'";
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::NOT_FOUND_ERROR, oss.str());
break;
case ExceptionCodes::PlatformException:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
default:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
}
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
return JSValueMakeUndefined(context);
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("entered");
+ LoggerD("entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr addressBook;
JSContextRef gContext;
ContactManagerController *controller;
addressBook = controller->getObject();
gContext = controller->getContext();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception,
+ JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_UPDATE_BATCH);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
- BasicValidator validator = BasicValidatorFactory::getValidator(context, exception);
- Try {
- // check 1st argument
- if (argumentCount < 1)
- ThrowMsg(InvalidArgumentException, "1st argument must be an array of 'Contact object'");
-
- if (!JSValueIsObject(context, arguments[0]))
- ThrowMsg(InvalidArgumentException, "1st argument must be an array of 'Contact object'");
-
- // check 2nd argument
- if(argumentCount >= 2)
- {
- if(validator->isCallback(arguments[1]))
- js2ndParamIsFunction = true;
-
- if (!js2ndParamIsFunction &&
- !JSValueIsNull(context, arguments[1]) &&
- !JSValueIsUndefined(context, arguments[1]))
- ThrowMsg(InvalidArgumentException, "2nd argument must be a 'function' or a 'null'");
- }
-
- // check 3rd argument
- if(argumentCount >= 3)
- {
- if(validator->isCallback(arguments[2]))
- js3rdParamIsFunction = true;
-
- if (!js3rdParamIsFunction &&
- !JSValueIsNull(context, arguments[2]) &&
- !JSValueIsUndefined(context, arguments[2]))
- ThrowMsg(InvalidArgumentException, "3rd argument must be a 'function' or a 'null'");
- }
-
- } Catch(Exception ) {
- LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, _rethrown_exception.GetMessage());
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+
+ validator.toObject(0, false);
+ JSObjectRef successObj = validator.toFunction(1, true);
+ if(successObj)
+ js2ndParamIsFunction = true;
+
+ JSObjectRef errorObj = validator.toFunction(2, true);
+ if(errorObj)
+ js3rdParamIsFunction = true;
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(context);
Try {
dplEvent->setPersons(converter->toPersonArray(arguments[0]));
} Catch(ConversionException) {
- LogError("Error on conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, "3rd argument must be a 'function' or a 'null'");
+ LoggerE("Error on conversion : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception,
+ JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "3rd argument must be a 'function' or a 'null'");
}
// set event handler's data
addressBook->updateBatch(dplEvent);
ContactAsyncCallbackManagerSingleton::Instance().registerCallbackManager(callbackManager, gContext);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception,
+ JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
// return JSObjectMake(gContext, JSPendingOperation::getClassRef(), gcPendingOperation);
return JSValueMakeUndefined(context);
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("entered");
+ LoggerD("entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr addressBook;
ContactManagerController *controller;
}
addressBook = controller->getObject();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
- if (argumentCount < 1) {
- /* 1st Argument must be string. */
- LogError("1st argument must not be undefined.");
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::NOT_FOUND_ERROR, "No Contact id 'undefined'");
- }
-
std::string personId;
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(context);
- Try {
- personId = converter->toString(arguments[0]);
- }
- Catch(Exception) {
- LogError("Error on conversion " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::TYPE_MISMATCH_ERROR, "Wrong arguments.");
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+ personId = validator.toString(0, false);
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
+ if(!ContactUtility::checkStrIsUInt(personId))
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::INVALID_VALUES_ERROR, "");
EventContactManagerRemovePtr dplEvent(new EventContactManagerRemove());
Try {
addressBook->remove(dplEvent);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception,
+ JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
if (!dplEvent->getResult())
{
case ExceptionCodes::NotFoundException:
case ExceptionCodes::InvalidArgumentException:
- LogError("Not Found error : " << personId);
- oss << "No Contact id '" << personId << "'";
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::NOT_FOUND_ERROR, oss.str());
+ LoggerE("Not Found error : " << personId);
+ oss << "No id '" << personId << "'";
+ return JSWebAPIErrorFactory::postException(context, exception,
+ JSWebAPIErrorFactory::NOT_FOUND_ERROR, oss.str());
break;
case ExceptionCodes::PlatformException:
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception,
+ JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
default:
- return JSTizenExceptionFactory::postException(context, exception,
- JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception,
+ JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
}
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
return JSValueMakeUndefined(context);
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("entered");
+ LoggerD("entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr addressBook;
JSContextRef gContext;
ContactManagerController *controller;
addressBook = controller->getObject();
gContext = controller->getContext();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE_BATCH);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
- BasicValidator validator = BasicValidatorFactory::getValidator(context, exception);
- Try {
- // check 1st argument
- if (argumentCount < 1)
- ThrowMsg(InvalidArgumentException, "1st argument must be an array of 'Contact id'");
-
- if (!JSValueIsObject(context, arguments[0]))
- ThrowMsg(InvalidArgumentException, "1st argument must be an array of 'Contact id'");
-
- // check 2nd argument
- if(argumentCount >= 2)
- {
- if(validator->isCallback(arguments[1]))
- js2ndParamIsFunction = true;
-
- if (!js2ndParamIsFunction &&
- !JSValueIsNull(context, arguments[1]) &&
- !JSValueIsUndefined(context, arguments[1]))
- ThrowMsg(InvalidArgumentException, "2nd argument must be a 'function' or a 'null'");
- }
-
- // check 3rd argument
- if(argumentCount >= 3)
- {
- if(validator->isCallback(arguments[2]))
- js3rdParamIsFunction = true;
-
- if (!js3rdParamIsFunction &&
- !JSValueIsNull(context, arguments[2]) &&
- !JSValueIsUndefined(context, arguments[2]))
- ThrowMsg(InvalidArgumentException, "3rd argument must be a 'function' or a 'null'");
- }
-
- } Catch(Exception ) {
- LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, _rethrown_exception.GetMessage());
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+
+ validator.toObject(0, false);
+ JSObjectRef successObj = validator.toFunction(1, true);
+ if(successObj)
+ js2ndParamIsFunction = true;
+
+ JSObjectRef errorObj = validator.toFunction(2, true);
+ if(errorObj)
+ js3rdParamIsFunction = true;
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(context);
Try {
dplEvent->setPersonIds(converter->toStringArray(arguments[0]));
} Catch(ConversionException) {
- LogError("Error on conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "3rd argument must be an array of 'Contact id'");
+ LoggerE("Error on conversion : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "3rd argument must be an array of 'Contact id'");
}
// set event handler's data
addressBook->removeBatch(dplEvent);
ContactAsyncCallbackManagerSingleton::Instance().registerCallbackManager(callbackManager, gContext);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
// return JSObjectMake(gContext, JSPendingOperation::getClassRef(), gcPendingOperation);
return JSValueMakeUndefined(context);
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("entered");
+ LoggerD("entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr addressBook;
JSContextRef gContext;
ContactManagerController *controller;
addressBook = controller->getObject();
gContext = controller->getContext();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_FIND);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
- BasicValidator validator = BasicValidatorFactory::getValidator(context, exception);
- Try {
- if (argumentCount < 1)
- ThrowMsg(InvalidArgumentException, "1st argument must be a 'function'");
-
- if (!validator->isCallback(arguments[0]))
- ThrowMsg(InvalidArgumentException, "1st argument must be a 'function'");
-
- if (argumentCount >= 2)
- {
- if(validator->isCallback(arguments[1]))
- js2ndParamIsFunction = true;
-
- if (!js2ndParamIsFunction &&
- !JSValueIsNull(context, arguments[1]) &&
- !JSValueIsUndefined(context, arguments[1]))
- ThrowMsg(InvalidArgumentException, "1st argument must be a 'function' or a 'null'");
- }
-
- if (argumentCount >= 3)
- {
- if(JSValueIsObject(context, arguments[2]))
- js3rdParamIsObject = true;
-
- if (!js3rdParamIsObject &&
- !JSValueIsNull(context, arguments[2]) &&
- !JSValueIsUndefined(context, arguments[2]))
- ThrowMsg(InvalidArgumentException, "3rd argument must be an 'Filter object' or 'null'");
- }
-
- if (argumentCount >= 4)
- {
- if(JSValueIsObject(context, arguments[3]))
- js4thParamIsObject = true;
-
- if (!js4thParamIsObject &&
- !JSValueIsNull(context, arguments[3]) &&
- !JSValueIsUndefined(context, arguments[3]))
- ThrowMsg(InvalidArgumentException, "4th argument must be an 'SortMode object' or 'null'");
- }
- } Catch(Exception ) {
- LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, _rethrown_exception.GetMessage());
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+
+ validator.toFunction(0, false);
+ JSObjectRef errorObj = validator.toFunction(1, true);
+ if(errorObj)
+ js2ndParamIsFunction = true;
+
+ JSObjectRef filterObj = validator.toObject(2, true);
+ if(filterObj)
+ js3rdParamIsObject = true;
+
+ JSObjectRef sortObj = validator.toObject(3, true);
+ if(sortObj)
+ js4thParamIsObject = true;
+
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
JSCallbackManagerPtr callbackManager = JSCallbackManager::createObject(gContext);
callbackManager->setObject(thisObject);
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(context);
- FilterConverterFactory::ConverterType filterConverter = FilterConverterFactory::getConverter(context);
+ PersonFilterConverterFactory::ConverterType filterConverter = PersonFilterConverterFactory::getConverter(context);
EventContactManagerFindPtr dplEvent(new EventContactManagerFind());
Try {
- if (js3rdParamIsObject)
- dplEvent->setFilter(filterConverter->toFilter(arguments[2]));
+ if (js3rdParamIsObject){
+ FilterPtr filter = filterConverter->toFilter(arguments[2]);
+ if(filter)
+ dplEvent->setFilter(filter);
+ else
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "3rd argument must be an Correct 'Filter object' or 'null'");
+ }
} Catch(Exception) {
- LogError("Error on 3rd parameter conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "3rd argument must be an 'Filter object' or 'null'");
+ LoggerE("Error on 3rd parameter conversion : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "3rd argument must be an 'Filter object' or 'null'");
}
Try {
- if (js4thParamIsObject)
- dplEvent->setSortMode(filterConverter->toSortMode(arguments[3]));
+ if (js4thParamIsObject){
+ SortModePtr sortMode = filterConverter->toSortMode(arguments[3]);
+ dplEvent->setSortMode(sortMode);
+ }
} Catch(Exception) {
- LogError("Error on 4th parameter conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "4th argument must be an 'SortMode object' or 'null'");
+ LoggerE("Error on 4th parameter conversion : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "4th argument must be an 'SortMode object' or 'null'");
}
// set event handler's data
addressBook->find(dplEvent);
ContactAsyncCallbackManagerSingleton::Instance().registerCallbackManager(callbackManager, gContext);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
// return JSObjectMake(gContext, JSPendingOperation::getClassRef(), gcPendingOperation);
return JSValueMakeUndefined(context);
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("entered");
+ LoggerD("entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr addressBook;
JSContextRef gContext;
ContactManagerController *controller;
addressBook = controller->getObject();
gContext = controller->getContext();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_ADD_CHANGE_LISTENER);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
BasicValidator validator = BasicValidatorFactory::getValidator(context, exception);
- Try {
- if (argumentCount < 1)
- ThrowMsg(InvalidArgumentException, "1st argument must be a 'ContactManagerChangeCallback object'");
-
- if (!JSValueIsObject(context, arguments[0]))
- ThrowMsg(InvalidArgumentException, "1st argument must be a 'ContactManagerChangeCallback object'");
-
- if (argumentCount >= 2)
- {
- if(validator->isCallback(arguments[1]))
- js2ndParamIsFunction = true;
-
- if (!js2ndParamIsFunction &&
- !JSValueIsNull(context, arguments[1]) &&
- !JSValueIsUndefined(context, arguments[1]))
- ThrowMsg(InvalidArgumentException, "2nd argument must be a 'function' or a 'null'");
- }
-
- } Catch(Exception ) {
- LogError("Argument type mismatch : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, _rethrown_exception.GetMessage());
+ try {
+ ArgumentValidator Argvalidator(context, argumentCount, arguments);
+
+ Argvalidator.toObject(0, false);
+ JSObjectRef errorObj = Argvalidator.toFunction(1, true);
+ if(errorObj)
+ js2ndParamIsFunction = true;
+
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(context);
}
if (onpersonsadded == NULL && onpersonsupdated == NULL && onpersonsdeleted == NULL)
- ThrowMsg(ConversionException, "2nd argument must have at least one function");
+ ThrowMsg(ConversionException, "invalid 2nd argument");
} Catch(ConversionException) {
- LogError("Error on conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, _rethrown_exception.GetMessage());
+ LoggerE("Error on conversion : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, _rethrown_exception.GetMessage());
}
JSContactManagerChangeCallbackManagerPtr callbackManager = JSContactManagerChangeCallbackManager::createObject(gContext);
Try {
addressBook->addChangeListener(dplEvent);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
if (!dplEvent->getResult() || !dplEvent->getIdIsSet())
{
case ExceptionCodes::InvalidArgumentException:
case ExceptionCodes::PlatformException:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
default:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
}
}
Try {
result = converter->toJSValueRefLong(watchId);
} Catch(Exception) {
- LogError("Error on conversion : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on conversion : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
-
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
return result;
}
const JSValueRef arguments[],
JSValueRef* exception)
{
- LogDebug("entered");
+ LoggerD("entered");
+ TIME_TRACER_ITEM_BEGIN(__FUNCTION__, 0);
ContactManagerPtr addressBook;
JSContextRef gContext;
ContactManagerController *controller;
addressBook = controller->getObject();
gContext = controller->getContext();
} Catch(Exception) {
- LogError("No private object");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::TYPE_MISMATCH_ERROR, "Wrong object");
+ LoggerE("No private object");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "Wrong object");
}
AceSecurityStatus status = CONTACT_CHECK_ACCESS(CONTACT_FUNCTION_API_CONTACT_MANAGER_REMOVE_CHANGE_LISTENER);
TIZEN_SYNC_ACCESS_HANDLER(status, context, exception);
- BasicValidator validator = BasicValidatorFactory::getValidator(context, exception);
- if (argumentCount < 1)
- {
- LogError("1st argument must not be undefined.");
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, "No watch id 'undefined'");
- }
-
ContactConverterFactory::ConverterType converter = ContactConverterFactory::getConverter(context);
long watchId = 0;
- Try {
- watchId = static_cast<long>(converter->toLong(arguments[0]));
+ std::string id;
- if (watchId < 0)
- ThrowMsg(PlatformException, "watchId is wrong (" << watchId << ")");
- } Catch(Exception) {
- LogError("Exception: " << _rethrown_exception.GetMessage());
- JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ try {
+ ArgumentValidator validator(context, argumentCount, arguments);
+ watchId = validator.toLong(0, false, 0);
+ id = validator.toString(0, false);
+ } catch (const TypeMismatchException& err ) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const BasePlatformException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, err);
+ } catch(const ConversionException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
+ } catch(const NullPointerException& err) {
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::TYPE_MISMATCH_ERROR, "");
}
+ if(!ContactUtility::checkStrIsUInt(id))
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::INVALID_VALUES_ERROR, "");
EventContactManagerRemoveChangeListenerPtr dplEvent(new EventContactManagerRemoveChangeListener());
Try {
addressBook->removeChangeListener(dplEvent);
} Catch(Exception) {
- LogError("Error on platform : " << _rethrown_exception.GetMessage());
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ LoggerE("Error on platform : " << _rethrown_exception.GetMessage());
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
}
PersonsChangeListenerCancellerPtr canceller = PersonsChangeListenerCancellerPtr(new PersonsChangeListenerCanceller(gContext, thisObject, watchId));
{
case ExceptionCodes::InvalidArgumentException:
case ExceptionCodes::NotFoundException:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::NOT_FOUND_ERROR, "Watch id not found");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::NOT_FOUND_ERROR, "Watch id not found");
break;
default:
- return JSTizenExceptionFactory::postException(context, exception, JSTizenException::UNKNOWN_ERROR, "Internal error");
+ return JSWebAPIErrorFactory::postException(context, exception, JSWebAPIErrorFactory::UNKNOWN_ERROR, "Internal error");
break;
}
}
-
+ TIME_TRACER_ITEM_END(__FUNCTION__, 0);
return JSValueMakeUndefined(context);
}