#include <sstream>
#include "common/converter.h"
#include "common/logger.h"
+#include "common/picojson.h"
using namespace common;
namespace extension {
namespace calendar {
{"id.uid",
{{CALENDAR_BOOK_TYPE_EVENT, _calendar_event.id},
{CALENDAR_BOOK_TYPE_TODO, _calendar_todo.uid}}},
- {"calendar_id",
+ {"calendarId",
{{CALENDAR_BOOK_TYPE_EVENT, _calendar_event.calendar_book_id},
{CALENDAR_BOOK_TYPE_TODO, _calendar_todo.calendar_book_id}}},
{"description",
return PlatformResult(ErrorCode::NO_ERROR);
}
- int value = common::FromJson<double>(in, property.c_str());
+ int value = 0;
+ auto jsonValue = common::FindValue(in, property.c_str());
+ if (jsonValue.is<double>()) {
+ value = common::FromJson<double>(in, property.c_str());
+ } else { // CalendarId is stored in js as string, while native api use int
+ value = common::stol(common::FromJson<std::string>(in, property.c_str()));
+ }
return SetInt(type, rec, property, value);
}
return status;
}
+ status = SetInt(type, rec, "calendarId", in);
+ if (status.IsError()) {
+ return status;
+ }
+
if (type == CALENDAR_BOOK_TYPE_EVENT) {
status = SetEnum(type, rec, "priority", in, kEventPriority);
if (status.IsError()) {
out["id"] = id_val;
int calendar_id;
- status = GetInt(type, rec, "calendar_id", &calendar_id);
+ status = GetInt(type, rec, "calendarId", &calendar_id);
if (status.IsError()) {
return status;
}
return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
- const JsonObject& calendar = FromJson<JsonObject>(args, "calendar");
-
calendar_record_h handle = nullptr;
PlatformResult status = CalendarRecord::CreateCalendar(&handle);
if (status.IsError()) {
CalendarRecordPtr record_ptr = CalendarRecordPtr(handle, CalendarRecord::Deleter);
- status = CalendarRecord::CalendarFromJson(record_ptr.get(), calendar);
+ status = CalendarRecord::CalendarFromJson(record_ptr.get(), args);
if (status.IsError()) {
return status;
}
if (status.IsError()) {
return status;
}
+ out.insert(std::make_pair("id", picojson::value(std::to_string(record_id))));
return PlatformResult(ErrorCode::NO_ERROR);
}
}]);
var callArgs = {
- calendar: args.calendar
+ name: args.calendar.name,
+ accountId: args.calendar.accountId,
+ type: args.calendar.type
};
var result = native_.callSync('CalendarManager_addCalendar', callArgs);
}
args.calendar.id = new InternalCalendar({
- id: native_.getResultObject(result)
+ id: native_.getResultObject(result).id
});
};