upload tizen1.0 source
[profile/ivi/wrt-plugins-tizen.git] / src / standards / Tizen / Calendar / CalendarConverter.cpp
index d5b4cd5..7c214e2 100755 (executable)
 #include <dpl/log/log.h>
 #include <CommonsJavaScript/Validator.h>
 #include <CommonsJavaScript/JSUtils.h>
-#include "JSCalendarItem.h"
 #include "JSCalendarEvent.h"
 #include "JSCalendarTask.h"
 #include "JSCalendarItemProperties.h"
 #include "JSCalendarEventId.h"
-#include "JSCalendarItemGeo.h"
 #include "CalendarConverter.h"
 #include "JSCalendar.h"
 #include "JSCalendarManager.h"
@@ -31,7 +29,9 @@
 #include "JSCalendarRecurrenceRule.h"
 #include "JSCalendarAlarm.h"
 #include <Tizen/TimeUtil/TimeUtilConverter.h>
-#include "API/TimeUtil/DurationProperties.h"
+#include <API/TimeUtil/DurationProperties.h>
+#include <Tizen/Tizen/JSSimpleCoordinates.h>
+#include <Tizen/Contact/ContactConverter.h>
 
 using namespace TizenApis::Api::Calendar;
 using namespace WrtDeviceApis::Commons;
@@ -45,25 +45,11 @@ namespace TizenApis {
 namespace Tizen1_0 {
 namespace Calendar {
 
-std::vector<std::string> CalendarConverter::m_allowedAttributes;
-
 CalendarConverter::CalendarConverter(JSContextRef context, CalendarEvent::CalendarType calendarType) : Converter(context)
 {
     LogDebug("entered");
 
     m_calendarType = calendarType;
-
-    // for WAC style search filter
-    if (m_allowedAttributes.size() == 0) {
-        m_allowedAttributes.push_back(TIZEN_CALENDAR_ITEM_ID);
-        m_allowedAttributes.push_back(TIZEN_CALENDAR_ITEM_SUMMARY);
-        m_allowedAttributes.push_back(TIZEN_CALENDAR_ITEM_DESCRIPTION);
-        m_allowedAttributes.push_back(TIZEN_CALENDAR_ITEM_LOCATION);
-        m_allowedAttributes.push_back("category");
-        m_allowedAttributes.push_back(TIZEN_CALENDAR_ITEM_STATUS);
-        m_allowedAttributes.push_back("initialStartDate");
-        m_allowedAttributes.push_back("endStartDate");
-    }
 }
 
 CalendarConverter::~CalendarConverter()
@@ -71,11 +57,6 @@ CalendarConverter::~CalendarConverter()
     LogDebug("entered");
 }
 
-JSValueRef CalendarConverter::toJSValueRefItem(const CalendarEventPtr& arg)
-{
-    return JSUtils::makeObject(m_context, JSCalendarItem::getClassRef(), arg);
-}
-
 JSValueRef CalendarConverter::toJSValueRefEvent(const CalendarEventPtr& arg)
 {
     return JSUtils::makeObject(m_context, JSCalendarEvent::getClassRef(), arg);
@@ -86,11 +67,6 @@ JSValueRef CalendarConverter::toJSValueRefTask(const CalendarEventPtr& arg)
     return JSUtils::makeObject(m_context, JSCalendarTask::getClassRef(), arg);
 }
 
-JSValueRef CalendarConverter::toJSValueRefItemArray(const CalendarEventListPtr &arg)
-{
-    return toJSValueRef_(*arg, &CalendarConverter::toJSValueRefItem, this);
-}
-
 JSValueRef CalendarConverter::toJSValueRefEventArray(const CalendarEventListPtr &arg)
 {
     return toJSValueRef_(*arg, &CalendarConverter::toJSValueRefEvent, this);
@@ -120,9 +96,9 @@ const
     else if (!alarmMethod.compare(TIZEN_CALENDAR_PROPERTY_SOUND_ALARM))
         return CalendarEvent::SOUND_ALARM;
     else
-        Throw(ConversionException);
+        ThrowMsg(ConversionException, "Invalid alarm type.");
 
-    return CalendarEvent::SOUND_ALARM;
+    return CalendarEvent::UNDEFINED_ALARM_TYPE;
 }
 
 std::string CalendarConverter::toTizenValue(CalendarEvent::EventAlarmType abstractValue) const
@@ -152,13 +128,10 @@ CalendarEvent::EventStatus CalendarConverter::toEventStatus(std::string tizenVal
         return CalendarEvent::IN_PROCESS_STATUS;
     else if (!tizenValue.compare(TIZEN_CALENDAR_PROPERTY_COMPLETED_STATUS))
         return CalendarEvent::COMPLETED_STATUS;
+    else
+        ThrowMsg(ConversionException, "Invalid status type.");
 
-    // default value setting.
-    if(m_calendarType == CalendarEvent::EVENT_TYPE) {
-        return CalendarEvent::TENTATIVE_STATUS;
-    } else {
-        return CalendarEvent::NEEDS_ACTION_STATUS;
-    }
+    return CalendarEvent::UNDEFINED_STATUS;
 }
 
 std::string CalendarConverter::toTizenValue(CalendarEvent::EventStatus abstractValue)
@@ -178,7 +151,14 @@ const
     case CalendarEvent::COMPLETED_STATUS:
         return TIZEN_CALENDAR_PROPERTY_COMPLETED_STATUS;
     default:
-        break;
+        {
+            if (CalendarEvent::TASK_TYPE==m_calendarType) {
+                return TIZEN_CALENDAR_PROPERTY_NEEDS_ACTION_STATUS;
+            } else {
+                return TIZEN_CALENDAR_PROPERTY_CONFIRMED_STATUS;
+            }
+            break;
+        }
     }
 
     ThrowMsg(ConversionException, "Invalid status");
@@ -195,8 +175,10 @@ EventRecurrenceRule::EventRecurrence CalendarConverter::toRecurrenceFrequency(
         return EventRecurrenceRule::MONTHLY_RECURRENCE;
     else if (!tizenValue.compare(TIZEN_CALENDAR_PROPERTY_YEARLY_RECURRENCE))
         return EventRecurrenceRule::YEARLY_RECURRENCE;
+    else
+        ThrowMsg(ConversionException, "Invalid recurrence frequency type.");
 
-    return EventRecurrenceRule::NO_RECURRENCE;
+    return EventRecurrenceRule::UNDEFINED_RECURRENCE;
 }
 
 std::string CalendarConverter::toTizenValue(
@@ -228,10 +210,10 @@ EventRecurrenceRulePtr CalendarConverter::toEventRecurrenceRule(JSValueRef rrule
     const ScopedJSStringRef intervalStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_INTERVAL));
     const ScopedJSStringRef untilDateStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_UNTIL_DATE));
     const ScopedJSStringRef occurrenceCountStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_OCCURRENCE_COUNT));
-//    const ScopedJSStringRef daysOfTheMonthStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_DAYS_OF_THE_MONTH));
+    //const ScopedJSStringRef daysOfTheMonthStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_DAYS_OF_THE_MONTH));
     const ScopedJSStringRef daysOfTheWeekStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_DAYS_OF_THE_WEEK));
-//    const ScopedJSStringRef daysOfTheYearStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_DAYS_OF_THE_YEAR));
-//    const ScopedJSStringRef weeksOfTheYearStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_WEEKS_OF_THE_YEAR));
+    //const ScopedJSStringRef daysOfTheYearStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_DAYS_OF_THE_YEAR));
+    //const ScopedJSStringRef weeksOfTheYearStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_WEEKS_OF_THE_YEAR));
     const ScopedJSStringRef setPositionStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_SET_POSITION));
     const ScopedJSStringRef exceptionsStr(JSStringCreateWithUTF8CString(TIZEN_RECURRENCE_RULE_EXCEPTIONS));
 
@@ -241,10 +223,10 @@ EventRecurrenceRulePtr CalendarConverter::toEventRecurrenceRule(JSValueRef rrule
     JSValueRef intervalData = JSObjectGetProperty(m_context, arg, intervalStr.get(), NULL);
     JSValueRef untilDateData = JSObjectGetProperty(m_context, arg, untilDateStr.get(), NULL);
     JSValueRef occurrenceCountData = JSObjectGetProperty(m_context, arg, occurrenceCountStr.get(), NULL);
-//    JSValueRef daysOfTheMonthData = JSObjectGetProperty(m_context, arg, daysOfTheMonthStr.get(), NULL);
+    //JSValueRef daysOfTheMonthData = JSObjectGetProperty(m_context, arg, daysOfTheMonthStr.get(), NULL);
     JSValueRef daysOfTheWeekData = JSObjectGetProperty(m_context, arg, daysOfTheWeekStr.get(), NULL);
-//    JSValueRef daysOfTheYearData = JSObjectGetProperty(m_context, arg, daysOfTheYearStr.get(), NULL);
-//    JSValueRef weeksOfTheYearData = JSObjectGetProperty(m_context, arg, weeksOfTheYearStr.get(), NULL);
+    //JSValueRef daysOfTheYearData = JSObjectGetProperty(m_context, arg, daysOfTheYearStr.get(), NULL);
+    //JSValueRef weeksOfTheYearData = JSObjectGetProperty(m_context, arg, weeksOfTheYearStr.get(), NULL);
     JSValueRef setPositionData = JSObjectGetProperty(m_context, arg, setPositionStr.get(), NULL);
     JSValueRef exceptionsData = JSObjectGetProperty(m_context, arg, exceptionsStr.get(), NULL);
 
@@ -258,7 +240,8 @@ EventRecurrenceRulePtr CalendarConverter::toEventRecurrenceRule(JSValueRef rrule
     }
     if (!JSValueIsUndefined(m_context, untilDateData)) {
         if (!JSValueIsNull(m_context, untilDateData)) {
-            result->setEndDate(toDateTimeT(untilDateData));
+            TimeUtilConverter timeUtilConverter(m_context);
+            result->setEndDate(timeUtilConverter.toTZDateTimeT(untilDateData));
         } else {
             result->setEndDate(0);
         }
@@ -266,24 +249,24 @@ EventRecurrenceRulePtr CalendarConverter::toEventRecurrenceRule(JSValueRef rrule
     if (!JSValueIsUndefined(m_context, occurrenceCountData)) {
         result->setOccurrenceCount(toLong(occurrenceCountData));
     }
-/*    if (!JSValueIsUndefined(m_context, daysOfTheMonthData)) {
+    /*if (!JSValueIsUndefined(m_context, daysOfTheMonthData)) {
         result->setDaysOfTheMonth(toVectorOfInts(daysOfTheMonthData));
     }*/
     if (!JSValueIsUndefined(m_context, daysOfTheWeekData)) {
         result->setDaysOfTheWeek(toVectorOfStrings(daysOfTheWeekData));
     }
-/*    if (!JSValueIsUndefined(m_context, daysOfTheYearData)) {
+    /*if (!JSValueIsUndefined(m_context, daysOfTheYearData)) {
         result->setDaysOfTheYear(toVectorOfInts(daysOfTheYearData));
     }
     if (!JSValueIsUndefined(m_context, weeksOfTheYearData)) {
         result->setWeeksOfTheYear(toVectorOfInts(weeksOfTheYearData));
     }*/
     if (!JSValueIsUndefined(m_context, setPositionData)) {
-        Throw(UnsupportedException);
+        ThrowMsg(UnsupportedException, "setPositions not supported yet.");
         //result->setSetPosition(toBool(setPositionData));
     }
     if (!JSValueIsUndefined(m_context, exceptionsData)) {
-        result->setExceptions(toVectorOfTimeT(exceptionsData));
+        result->setExceptions(toVectorOfTimeTFromTZDate(exceptionsData));
     }
 
     return result;
@@ -298,8 +281,10 @@ const
         return CalendarEvent::PRIVATE_VISIBILITY;
     else if (!tizenValue.compare(TIZEN_CALENDAR_PROPERTY_CONFIDENTIAL_VISIBILITY))
         return CalendarEvent::CONFIDENTIAL_VISIBILITY;
+    else
+        ThrowMsg(ConversionException, "Invalid visibility type.");
 
-    return CalendarEvent::PUBLIC_VISIBILITY;
+    return CalendarEvent::UNDEFINED_VISIBILITY;
 }
 
 std::string CalendarConverter::toTizenValue(
@@ -330,8 +315,10 @@ const
         return CalendarEvent::FREE_FB;
     else if (!tizenValue.compare(TIZEN_CALENDAR_PROPERTY_BUSY_TENTATIVE))
         return CalendarEvent::BUSY_TENTATIVE_FB;
-  
-    return CalendarEvent::BUSY_FB;
+    else
+        ThrowMsg(ConversionException, "Invalid availability type.");
+
+    return CalendarEvent::UNDEFINED_AVAILABILITY;
 }
 
 std::string CalendarConverter::toTizenValue(
@@ -364,8 +351,10 @@ const
         return EventAttendee::NON_PARTICIPANT_ROLE;
     else if (!tizenValue.compare(TIZEN_CALENDAR_PROPERTY_CHAIR_ROLE))
         return EventAttendee::CHAIR_ROLE;
+    else
+        ThrowMsg(ConversionException, "Invalid attendee role type.");
 
-    return EventAttendee::REQ_PARTICIPANT_ROLE;
+    return EventAttendee::UNDEFINED_ATTENDEE_ROLE;
 }
 
 std::string CalendarConverter::toTizenValue(
@@ -403,8 +392,10 @@ const
         return EventAttendee::COMPLETED_AT_STATUS;
     else if (!tizenValue.compare(TIZEN_CALENDAR_PROPERTY_IN_PROCESS_STATUS))
         return EventAttendee::IN_PROCESS_AT_STATUS;
+    else
+        ThrowMsg(ConversionException, "Invalid attendee status type.");
 
-    return EventAttendee::PENDING_AT_STATUS;
+    return EventAttendee::UNDEFINED_ATTENDEE_STATUS;
 }
 
 std::string CalendarConverter::toTizenValue(
@@ -475,7 +466,7 @@ JSValueRef CalendarConverter::toFunctionOrNull(const JSValueRef& arg)
         return arg;
     } else if (!JSValueIsNull(m_context,
                               arg) && !JSValueIsUndefined(m_context, arg)) {
-        ThrowMsg(InvalidArgumentException, "Not a function nor JS null.");
+        ThrowMsg(ConversionException, "Not a function nor JS null.");
     }
     return NULL;
 }
@@ -484,181 +475,8 @@ JSValueRef CalendarConverter::toFunction(const JSValueRef& arg)
 {
     if (Validator(m_context).isCallback(arg)) {
         return arg;
-    } else if (JSValueIsNull(m_context,
-                             arg) || JSValueIsUndefined(m_context, arg)) {
-        ThrowMsg(ConversionException, "JS null passed as function.");
-    }
-    ThrowMsg(InvalidArgumentException, "Not a function nor JS null.");
-}
-
-void CalendarConverter::toEventFilterConvertId(
-        const EventFilterPtr &result,
-        const JSValueRef &filters)
-{
-    const ScopedJSStringRef idStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_ITEM_ID));
-    JSObjectRef filterObj = toJSObjectRef(filters);
-    if (JSObjectHasProperty(m_context, filterObj, idStr.get())) {
-        LogDebug("converting id");
-        JSValueRef value = JSObjectGetProperty(m_context, filterObj,
-                                               idStr.get(), NULL);
-        result->setIdFilter(toString(value));
-    }
-}
-
-void CalendarConverter::toEventFilterConvertSummary(
-        const EventFilterPtr &result,
-        const JSValueRef &filters)
-{
-    const ScopedJSStringRef summaryStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_ITEM_SUMMARY));
-    JSObjectRef filterObj = toJSObjectRef(filters);
-    if (JSObjectHasProperty(m_context, filterObj, summaryStr.get())) {
-        LogDebug("converting summary");
-        JSValueRef value = JSObjectGetProperty(m_context,
-                                               filterObj,
-                                               summaryStr.get(),
-                                               NULL);
-        result->setSubjectFilter(toString(value));
-    }
-}
-
-void CalendarConverter::toEventFilterConvertDescription(
-        const EventFilterPtr &result,
-        const JSValueRef &filters)
-{
-    const ScopedJSStringRef descriptionStr(JSStringCreateWithUTF8CString(
-                                               TIZEN_CALENDAR_ITEM_DESCRIPTION));
-    JSObjectRef filterObj = toJSObjectRef(filters);
-    if (JSObjectHasProperty(m_context, filterObj, descriptionStr.get())) {
-        LogDebug("converting description");
-        JSValueRef value = JSObjectGetProperty(m_context,
-                                               filterObj,
-                                               descriptionStr.get(),
-                                               NULL);
-        result->setDescriptionFilter(toString(value));
     }
-}
-
-void CalendarConverter::toEventFilterConvertLocation(
-        const EventFilterPtr &result,
-        const JSValueRef &filters)
-{
-    const ScopedJSStringRef locationStr(JSStringCreateWithUTF8CString(
-                                            TIZEN_CALENDAR_ITEM_LOCATION));
-    JSObjectRef filterObj = toJSObjectRef(filters);
-    if (JSObjectHasProperty(m_context, filterObj, locationStr.get())) {
-        LogDebug("converting location");
-        JSValueRef value = JSObjectGetProperty(m_context,
-                                               filterObj,
-                                               locationStr.get(),
-                                               NULL);
-        result->setLocationFilter(toString(value));
-    }
-}
-
-void CalendarConverter::toEventFilterConvertCategory(
-        const EventFilterPtr &result,
-        const JSValueRef &filters)
-{
-    const ScopedJSStringRef locationStr(JSStringCreateWithUTF8CString(
-                                            "category"));
-    JSObjectRef filterObj = toJSObjectRef(filters);
-    if (JSObjectHasProperty(m_context, filterObj, locationStr.get())) {
-        LogDebug("converting category");
-        JSValueRef value = JSObjectGetProperty(m_context,
-                                               filterObj,
-                                               locationStr.get(),
-                                               NULL);
-        result->setCategoryFilter(toString(value));
-    }
-}
-
-void CalendarConverter::toEventFilterConvertStatus(
-        const EventFilterPtr &result,
-        const JSValueRef &filters)
-{
-    const ScopedJSStringRef statusStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_ITEM_STATUS));
-    JSObjectRef filterObj = toJSObjectRef(filters);
-    if (JSObjectHasProperty(m_context, filterObj, statusStr.get())) {
-        LogDebug("converting status");
-        JSValueRef value = JSObjectGetProperty(m_context,
-                                               filterObj,
-                                               statusStr.get(),
-                                               NULL);
-        std::vector<std::string> statuses = toVectorOfStrings(value);
-        for (std::size_t i = 0; i < statuses.size(); ++i) {
-            CalendarEvent::EventStatus status(toEventStatus(statuses[i]));
-            if (status == CalendarEvent::INVALID_STATUS) {
-                ThrowMsg(InvalidArgumentException,
-                         "Status filter has wrong value");
-            }
-            result->addStatusFilter(status);
-        }
-    }
-}
-
-void CalendarConverter::toEventFilterConvertStartTime(
-        const EventFilterPtr &result,
-        const JSValueRef &filters)
-{
-    const ScopedJSStringRef initialStartDateStr(JSStringCreateWithUTF8CString(
-                                                    "initialStartDate"));
-    const ScopedJSStringRef endStartDateStr(JSStringCreateWithUTF8CString(
-                                                "endStartDate"));
-    JSObjectRef filterObj = toJSObjectRef(filters);
-    if (JSObjectHasProperty(m_context, filterObj, initialStartDateStr.get()) ||
-        JSObjectHasProperty(m_context, filterObj, endStartDateStr.get())) {
-        LogDebug("converting startTime");
-        JSValueRef valueStart = JSObjectGetProperty(m_context,
-                                                    filterObj,
-                                                    initialStartDateStr.get(),
-                                                    NULL);
-        JSValueRef valueEnd = JSObjectGetProperty(m_context,
-                                                  filterObj,
-                                                  endStartDateStr.get(),
-                                                  NULL);
-        //no filters
-        if ((JSValueIsNull(m_context,
-                           valueStart) ||
-             JSValueIsUndefined(m_context, valueStart)) &&
-            (JSValueIsNull(m_context,
-                           valueEnd) ||
-             JSValueIsUndefined(m_context, valueEnd))) {
-            return;
-        }
-        //start
-        if (!JSValueIsNull(m_context, valueStart) &&
-            !JSValueIsUndefined(m_context, valueStart)) {
-            result->setStartTimeMinFilter(toDateTimeT(valueStart));
-        }
-        //end
-        if (!JSValueIsNull(m_context, valueEnd) &&
-            !JSValueIsUndefined(m_context, valueEnd)) {
-            result->setStartTimeMaxFilter(toDateTimeT(valueEnd));
-        }
-    }
-}
-
-EventFilterPtr CalendarConverter::toEventFilter(const JSValueRef &filters)
-{
-    LogDebug("entered");
-    EventFilterPtr result(new EventFilter());
-    Validator validator(m_context);
-    if (!JSValueIsObject(m_context, filters)) {
-        LogError("Wrong filter parameter");
-        Throw(InvalidArgumentException);
-    }
-    if (!validator.checkArrayKeys(m_allowedAttributes, filters)) {
-        LogError("Wrong filter's attribue");
-        Throw(ConversionException);
-    }
-    toEventFilterConvertId(result, filters);
-    toEventFilterConvertSummary(result, filters);
-    toEventFilterConvertDescription(result, filters);
-    toEventFilterConvertLocation(result, filters);
-    toEventFilterConvertCategory(result, filters);
-    toEventFilterConvertStatus(result, filters);
-    toEventFilterConvertStartTime(result, filters);
-    return result;
+    ThrowMsg(ConversionException, "Not a function.");
 }
 
 CategoryListPtr CalendarConverter::toCategories(JSValueRef categories)
@@ -725,7 +543,9 @@ EventAttendeePtr CalendarConverter::toAttendee(JSValueRef attendee)
         result->setDelegateURI(toString(delegateURIData));
     }
     if (!JSValueIsUndefined(m_context, contactRefData)) {
-        result->setContactId(toString(contactRefData));
+        TizenApis::Tizen1_0::Contact::ContactConverter contactConverter(m_context);
+        result->setContactId(contactConverter.toContactRef(contactRefData)->getContactId());
+        result->setAddressBookId(contactConverter.toContactRef(contactRefData)->getAddressBookId());
     }
 
     return result;
@@ -856,6 +676,7 @@ CalendarEventPtr CalendarConverter::toEvent(const JSValueRef event)
     const ScopedJSStringRef availabilityStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_EVENT_AVAILABILITY));
     const ScopedJSStringRef recurrenceRuleStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_EVENT_RECURRENCE_RULE));
     const ScopedJSStringRef priorityStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_ITEM_PRIORITY));
+    const ScopedJSStringRef endDateStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_EVENT_END_DATE));
     const ScopedJSStringRef dueDateStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_TASK_DUE_DATE));
     const ScopedJSStringRef completedDateStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_TASK_COMPLETED_DATE));
     const ScopedJSStringRef progressStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_TASK_PROGRESS));
@@ -878,6 +699,7 @@ CalendarEventPtr CalendarConverter::toEvent(const JSValueRef event)
     JSValueRef availabilityData = JSObjectGetProperty(m_context, arg, availabilityStr.get(), NULL);
     JSValueRef recurrenceRuleData = JSObjectGetProperty(m_context, arg, recurrenceRuleStr.get(), NULL);
     JSValueRef priorityData = JSObjectGetProperty(m_context, arg, priorityStr.get(), NULL);
+    JSValueRef endDateData = JSObjectGetProperty(m_context, arg, endDateStr.get(), NULL);
     JSValueRef dueDateData = JSObjectGetProperty(m_context, arg, dueDateStr.get(), NULL);
     JSValueRef completedDateData = JSObjectGetProperty(m_context, arg, completedDateStr.get(), NULL);
     JSValueRef progressData = JSObjectGetProperty(m_context, arg, progressStr.get(), NULL);
@@ -987,7 +809,10 @@ CalendarEventPtr CalendarConverter::toEvent(const JSValueRef event)
         result->setAttendees(attendees);
     }
     if (!JSValueIsUndefined(m_context, geolocationData)) {
-        result->setGeolocation(toGeolocation(geolocationData));
+        TizenApis::Api::Tizen::SimpleCoordinatesPtr geoLocation =
+            TizenApis::Tizen1_0::Tizen::JSSimpleCoordinates::getSimpleCoordinates(m_context, geolocationData);
+        result->setLatitude(geoLocation->getLatitude());
+        result->setLongitude(geoLocation->getLongitude());
     }
     if (!JSValueIsUndefined(m_context, visibilityData)) {
         result->setVisibility(toEventVisibility(toString(visibilityData)));
@@ -1001,6 +826,9 @@ CalendarEventPtr CalendarConverter::toEvent(const JSValueRef event)
     if (!JSValueIsUndefined(m_context, priorityData)) {
         result->setPriority(toTaskPriority(toString(priorityData)));
     }
+    if (!JSValueIsUndefined(m_context, endDateData)) {
+        result->setEndTime(timeUtilConverter.toTZDateTimeT(endDateData));
+    }
     if (!JSValueIsUndefined(m_context, dueDateData)) {
         result->setEndTime(timeUtilConverter.toTZDateTimeT(dueDateData));
     }
@@ -1025,7 +853,7 @@ CalendarEventListPtr CalendarConverter::toVectorOfEvents(JSValueRef events)
     for (std::size_t i = 0; i < JSGetArrayLength(m_context, objArg); i++) {
         JSValueRef element = JSGetArrayElement(m_context, objArg, i);
         JSObjectRef arg = JSValueToObject(m_context, element, NULL);
-        resultVector.push_back(JSCalendarItem::getPrivateObject(arg));
+        resultVector.push_back(JSCalendarEvent::getPrivateObject(arg));
     }
 
     *result = resultVector;
@@ -1052,8 +880,8 @@ EventIdPtr CalendarConverter::toEventId(JSValueRef eventId)
 {
     LogDebug("entered");
     EventIdPtr result(new EventId());
-    const ScopedJSStringRef uidStr(JSStringCreateWithUTF8CString("uid"));
-    const ScopedJSStringRef recurrenceIdStr(JSStringCreateWithUTF8CString("recurrenceId"));
+    const ScopedJSStringRef uidStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_EVENT_ID_UID));
+    const ScopedJSStringRef recurrenceIdStr(JSStringCreateWithUTF8CString(TIZEN_CALENDAR_EVENT_ID_RECURRENCEID));
 
     JSObjectRef arg = toJSObjectRef(eventId);
 
@@ -1064,30 +892,7 @@ EventIdPtr CalendarConverter::toEventId(JSValueRef eventId)
         result->setUId(toString(uidData));
     }
     if (!JSValueIsUndefined(m_context, recurrenceIdData)) {
-        TimeUtilConverter timeUtilConverter(m_context);
-        result->setRecurrenceId(timeUtilConverter.toTZDateTimeT(recurrenceIdData));
-   }
-
-    return result;
-}
-
-CalendarItemGeoPtr CalendarConverter::toGeolocation(JSValueRef geoInfo)
-{
-    LogDebug("entered");
-    CalendarItemGeoPtr result(new CalendarItemGeo());
-    const ScopedJSStringRef latStr(JSStringCreateWithUTF8CString("latitude"));
-    const ScopedJSStringRef lonStr(JSStringCreateWithUTF8CString("longitude"));
-
-    JSObjectRef arg = toJSObjectRef(geoInfo);
-
-    JSValueRef latData = JSObjectGetProperty(m_context, arg, latStr.get(), NULL);
-    JSValueRef lonData = JSObjectGetProperty(m_context, arg, lonStr.get(), NULL);
-
-    if (!JSValueIsUndefined(m_context, latData)) {
-        result->setLatitude(toDouble(latData));
-    }
-    if (!JSValueIsUndefined(m_context, lonData)) {
-        result->setLongitude(toDouble(lonData));
+        result->setRecurrenceId(toString(recurrenceIdData));
    }
 
     return result;
@@ -1152,9 +957,9 @@ CalendarEvent::TaskPriority CalendarConverter::toTaskPriority(std::string priori
     else if (!priority.compare(TIZEN_CALENDAR_PROPERTY_LOW_PRIORITY))
         return CalendarEvent::LOW_PRIORITY;
     else
-        Throw(ConversionException);
+        ThrowMsg(ConversionException, "Invalid priority type.");
 
-    return CalendarEvent::LOW_PRIORITY;
+    return CalendarEvent::UNDEFINED_PRIORITY;
 }
 
 CalendarEvent::CalendarType CalendarConverter::toCalendarType(std::string type) const
@@ -1164,9 +969,9 @@ CalendarEvent::CalendarType CalendarConverter::toCalendarType(std::string type)
     else if (!type.compare(TIZEN_CALENDAR_PROPERTY_TYPE_TASK))
         return CalendarEvent::TASK_TYPE;
     else
-        Throw(ConversionException);
+        ThrowMsg(ConversionException, "Invalid calendar type.");
 
-    return CalendarEvent::EVENT_TYPE;
+    return CalendarEvent::UNDEFINED_TYPE;
 }
 
 CalendarEvent::VObjectFormat CalendarConverter::toVObjectFormat(std::string format) const
@@ -1175,8 +980,10 @@ CalendarEvent::VObjectFormat CalendarConverter::toVObjectFormat(std::string form
         return CalendarEvent::ICALENDAR_20;
     else if (!format.compare(TIZEN_CALENDAR_PROPERTY_VCALENDAR_10_FORMAT))
         return CalendarEvent::VCALENDAR_10;
+    else
+        ThrowMsg(ConversionException, "Invalid format type.");
 
-    return CalendarEvent::ICALENDAR_20;
+    return CalendarEvent::UNDEFINED_FORMAT;
 }
 
 }