PlatformResult Calendar::Get(const picojson::object& args, picojson::object& out) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
int calendar_id = common::stol(FromJson<std::string>(args, "calendarId"));
PlatformResult Calendar::Add(const picojson::object& args,
picojson::object& out) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
const auto& item = FromJson<picojson::object>(args, "item");
PlatformResult Calendar::AddBatch(const picojson::object& args,
picojson::array& array) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
auto& items = FromJson<picojson::array>(args, "items");
if (items.empty()) {
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR, "No items");
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, "No items");
}
int type = CalendarRecord::TypeToInt(FromJson<std::string>(args, "type"));
if (status.IsError()) return status;
calendar_list_h list = NULL;
- if (CALENDAR_ERROR_NONE != calendar_list_create(&list)) {
- LoggerE("Could not create list for batch operation");
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Could not create list for batch operation");
+ int ret = calendar_list_create(&list);
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Could not create list for batch operation",
+ ("calendar_list_create error: %d (%s)", ret, get_error_message(ret)));
}
CalendarListPtr list_ptr = CalendarListPtr(list, CalendarRecord::ListDeleter);
- int ret;
calendar_record_h record;
for (auto& item : items) {
ret = calendar_record_create(view_uri.c_str(), &record);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerW("Can't create platform record %d", ret);
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Can't create platform record");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Can't create platform record",
+ ("calendar_record_create error: %d (%s)", ret, get_error_message(ret)));
}
PlatformResult status =
CalendarItem::FromJson(type, record, item.get<picojson::object>());
if (status.IsError()) return status;
- if (CALENDAR_ERROR_NONE != calendar_list_add(list_ptr.get(), record)) {
- LoggerE("Could not add record to list events");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Could not add record to list");
+ ret = calendar_list_add(list_ptr.get(), record);
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::INVALID_VALUES_ERR, "Could not add record to list",
+ ("calendar_list_add error: %d (%s)", ret, get_error_message(ret)));
}
}
int count;
ret = calendar_db_insert_records(list_ptr.get(), &ids, &count);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("calendar_db_insert_records failed.");
if (CALENDAR_ERROR_INVALID_PARAMETER == ret) {
- LoggerE("CALENDAR_ERROR_INVALID_PARAMETER.");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Parameter is invalid");
+ return LogAndCreateResult(
+ ErrorCode::INVALID_VALUES_ERR, "Parameter is invalid",
+ ("calendar_db_insert_records error: %d (%s)", ret, get_error_message(ret)));
} else {
- LoggerE("CALENDAR_ERROR_DB_FAILED");
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "CALENDAR_ERROR_DB_FAILED occurred");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "CALENDAR_ERROR_DB_FAILED occurred",
+ ("calendar_db_insert_records error: %d (%s)", ret, get_error_message(ret)));
}
}
PlatformResult Calendar::Update(const picojson::object& args,
picojson::object& /*out*/) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
const auto& item = FromJson<picojson::object>(args, "item");
status = CalendarItem::FromJson(type, record_ptr.get(), item);
if (status.IsError()) return status;
+ int ret;
+
if (type == CALENDAR_BOOK_TYPE_TODO || update_all ||
common::IsNull(item, "recurrenceRule")) {
- if (CALENDAR_ERROR_NONE != calendar_db_update_record(record_ptr.get())) {
- LoggerE("Can't update calendar item");
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Can't update calendar item");
+ ret = calendar_db_update_record(record_ptr.get());
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Can't update calendar item",
+ ("calendar_db_update_record error: %d (%s)", ret, get_error_message(ret)));
}
} else {
// first update the parent event
_calendar_event.recurrence_id, "");
if (status.IsError()) return status;
- if (CALENDAR_ERROR_NONE != calendar_db_update_record(record_ptr.get())) {
- LoggerE("Can't update calendar item");
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Can't update calendar item");
+ ret = calendar_db_update_record(record_ptr.get());
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Can't update calendar item",
+ ("calendar_db_update_record error: %d (%s)", ret, get_error_message(ret)));
}
// now add the detached child event
PlatformResult Calendar::UpdateBatch(const picojson::object& args,
picojson::array& array) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
auto& items = FromJson<picojson::array>(args, "items");
if (items.empty()) {
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR, "No items");
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, "No items");
}
bool update_all = true;
if (status.IsError()) return status;
calendar_list_h list = NULL;
- if (CALENDAR_ERROR_NONE != calendar_list_create(&list)) {
- LoggerE("Could not create list for batch operation");
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Could not create list for batch operation");
+ int ret = calendar_list_create(&list);
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Could not create list for batch operation",
+ ("calendar_list_create error: %d (%s)", ret, get_error_message(ret)));
}
CalendarListPtr list_ptr = CalendarListPtr(list, CalendarRecord::ListDeleter);
id = common::stol(FromJson<std::string>(item_obj, "id"));
}
- int ret = calendar_db_get_record(view_uri.c_str(), id, &record);
+ ret = calendar_db_get_record(view_uri.c_str(), id, &record);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerW("Can't get platform record %d", ret);
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Can't get platform record");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Can't get platform record",
+ ("calendar_db_get_record error: %d (%s)", ret, get_error_message(ret)));
}
PlatformResult status =
CalendarItem::FromJson(type, record, item.get<picojson::object>());
if (status.IsError()) return status;
- if (CALENDAR_ERROR_NONE != calendar_list_add(list_ptr.get(), record)) {
- LoggerE("Could not add record to list events");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Could not add record to list");
+ ret = calendar_list_add(list_ptr.get(), record);
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::INVALID_VALUES_ERR, "Could not add record to list",
+ ("calendar_list_add error: %d (%s)", ret, get_error_message(ret)));
}
}
if (type == CALENDAR_BOOK_TYPE_TODO || update_all) {
- if (CALENDAR_ERROR_NONE != calendar_db_update_records(list_ptr.get())) {
- LoggerE("Can't update calendar items");
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Can't update calendar items");
+ ret = calendar_db_update_records(list_ptr.get());
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Can't update calendar items",
+ ("calendar_db_update_records error: %d (%s)", ret, get_error_message(ret)));
}
} else {
// @todo update the exdate for a recurring parent event and add a new
PlatformResult Calendar::Remove(const picojson::object& args,
picojson::object& out) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
int type = CalendarRecord::TypeToInt(FromJson<std::string>(args, "type"));
PlatformResult Calendar::Find(const picojson::object& args, picojson::array& array) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
int calendar_id = common::stol(FromJson<std::string>(args, "calendarId"));
int error_code = 0;
value = common::stol(JsonCast<std::string>(match_value));
}
if (value < 0) {
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Match value cannot be less than 0");
+ return LogAndCreateResult(
+ ErrorCode::INVALID_VALUES_ERR, "Match value cannot be less than 0");
}
calendar_match_int_flag_e flag;
if (AttributeMatchFlag::kExists == match_flag) {
visitor.SetOnCompositeFilterEnd([&](CompositeFilterType calType) {
if (intermediate_filters.size() == 0) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Reached stack size equal to 0!");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Reached stack size equal to 0!");
}
calendar_filter_h merged_filter = nullptr;
merged_filter, CALENDAR_FILTER_OPERATOR_OR);
if ((status = ErrorChecker(error_code)).IsError()) return status;
} else {
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Invalid union type!");
+ return LogAndCreateResult(
+ ErrorCode::INVALID_VALUES_ERR, "Invalid union type!",
+ ("Invalid union type: %d", calType));
}
}
intermediate_filters.pop_back();
visitor.Visit(FromJson<JsonObject>(args, "filter"));
if ((intermediate_filters.size() != 1) ||
(intermediate_filters[0].size() != 1)) {
- LoggerE("Bad filter evaluation!");
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Bad filter evaluation!");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Bad filter evaluation!");
}
error_code = calendar_query_set_filter(calendar_query,
intermediate_filters[0][0].get());
error_code =
calendar_db_get_records_with_query(calendar_query, 0, 0, &record_list);
if (CALENDAR_ERROR_NONE != error_code) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "calendar_db_get_records_with_query failed");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "calendar_db_get_records_with_query failed",
+ ("calendar_db_get_records_with_query error: %d (%s)",
+ error_code, get_error_message(error_code)));
}
CalendarListPtr record_list_ptr(record_list, CalendarRecord::ListDeleter);
int record_count = 0;
error_code = calendar_list_get_count(record_list, &record_count);
if (CALENDAR_ERROR_NONE != error_code) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "calendar_list_get_count failed");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "calendar_list_get_count failed",
+ ("calendar_list_get_count error: %d (%s)",
+ error_code, get_error_message(error_code)));
}
error_code = calendar_list_first(record_list);
if (CALENDAR_ERROR_NONE != error_code) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "calendar_list_first failed");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "calendar_list_first failed",
+ ("calendar_list_first error: %d (%s)",
+ error_code, get_error_message(error_code)));
}
array.reserve(record_count);
error_code =
calendar_list_get_current_record_p(record_list, ¤t_record);
if (CALENDAR_ERROR_NONE != error_code) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "calendar_list_get_current_record_p failed");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "calendar_list_get_current_record_p failed",
+ ("calendar_list_get_current_record_p error: %d (%s)",
+ error_code, get_error_message(error_code)));
}
picojson::value record_obj = picojson::value(picojson::object());
PlatformResult status = CalendarItem::ToJson(
PlatformResult Calendar::RemoveBatch(const picojson::object& args,
picojson::array& array) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
auto& ids = FromJson<picojson::array>(args, "ids");
if (ids.empty()) {
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR, "No items");
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, "No items");
}
int type = CalendarRecord::TypeToInt(FromJson<std::string>(args, "type"));
if (CALENDAR_ERROR_NONE != ret) {
LoggerE("calendar_db_delete_records failed.");
if (CALENDAR_ERROR_INVALID_PARAMETER == ret) {
- LoggerE("CALENDAR_ERROR_INVALID_PARAMETER");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Parameter is invalid");
+ return LogAndCreateResult(
+ ErrorCode::INVALID_VALUES_ERR, "Parameter is invalid",
+ ("calendar_db_delete_records error: %d (%s)", ret, get_error_message(ret)));
} else {
- LoggerE("CALENDAR_ERROR_DB_FAILED");
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "UnknownError");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "UnknownError",
+ ("calendar_db_delete_records error: %d (%s)", ret, get_error_message(ret)));
}
}
}
PlatformResult Calendar::AddChangeListener(const picojson::object& args,
picojson::object& out) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
const std::string& type = FromJson<std::string>(args, "type");
int ret = calendar_db_add_changed_cb(view_uri.c_str(), ChangeCallback, this);
if (CALENDAR_ERROR_NONE != ret) {
LoggerE("Add calendar change callback error for type %s", type.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Add calendar change callback error");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Add calendar change callback error",
+ ("calendar_db_add_changed_cb error %d (%s)", ret, get_error_message(ret)));
}
ret = calendar_db_get_current_version(¤t_db_version_);
if (CALENDAR_ERROR_NONE != ret) {
current_db_version_ = 0;
- LoggerE("Can't get calendar db version");
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Can't get calendar db version");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Can't get calendar db version",
+ ("calendar_db_get_current_version error: %d (%s)", ret, get_error_message(ret)));
}
listeners_registered_[type] = listener_id;
PlatformResult Calendar::RemoveChangeListener(const picojson::object& args,
picojson::object& out) {
if (!CalendarManager::GetInstance().IsConnected()) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
const std::string& type = FromJson<std::string>(args, "type");
int ret = calendar_db_remove_changed_cb(view_uri.c_str(), ChangeCallback, this);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Remove calendar change callback error for type %s",
- type.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Remove calendar change callback error");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Remove calendar change callback error",
+ ("Remove calendar change callback error for type %s - %d (%s)",
+ type.c_str(), ret, get_error_message(ret)));
}
listeners_registered_.erase(type);
}
PlatformResult Calendar::ErrorChecker(int errorCode) {
if (errorCode != CALENDAR_ERROR_NONE)
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "exception occured");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "exception occured",
+ ("Error %d in ErrorChecker (%s)", errorCode, get_error_message(errorCode)));
return PlatformResult(ErrorCode::NO_ERROR);
}
ReportSuccess(val, out);
else
{
- LoggerE("Failed");
- ReportError(status, &out);
+ LogAndReportError(status, &out);
}
}
if (status.IsSuccess()) {
ReportSuccess(val, out);
} else{
- LoggerE("Failed");
- ReportError(status, &out);
+ LogAndReportError(status, &out);
}
}
ReportSuccess(result, response->get<picojson::object>());
else
{
- LoggerE("Failed");
- ReportError(status, &response->get<picojson::object>());
+ LogAndReportError(status, &response->get<picojson::object>());
}
};
ReportSuccess(val, out);
else
{
- LoggerE("Failed");
- ReportError(status, &out);
+ LogAndReportError(status, &out);
}
}
ReportSuccess(result, response->get<picojson::object>());
else
{
- LoggerE("Failed");
- ReportError(status, &response->get<picojson::object>());
+ LogAndReportError(status, &response->get<picojson::object>());
}
};
ReportSuccess(out);
else
{
- LoggerE("Failed");
- ReportError(status, &val.get<JsonObject>());
+ LogAndReportError(status, &val.get<JsonObject>());
}
}
ReportSuccess(result, response->get<picojson::object>());
else
{
- LoggerE("Failed");
- ReportError(status, &response->get<picojson::object>());
+ LogAndReportError(status, &response->get<picojson::object>());
}
};
ReportSuccess(result, response->get<picojson::object>());
else
{
- LoggerE("Failed");
- ReportError(status, &response->get<picojson::object>());
+ LogAndReportError(status, &response->get<picojson::object>());
}
};
ReportSuccess(out);
else
{
- LoggerE("Failed");
- ReportError(status, &val.get<JsonObject>());
+ LogAndReportError(status, &val.get<JsonObject>());
}
}
ReportSuccess(out);
else
{
- LoggerE("Failed");
- ReportError(status, &val.get<JsonObject>());
+ LogAndReportError(status, &val.get<JsonObject>());
}
}
ReportSuccess(val, out);
else
{
- LoggerE("Failed");
- ReportError(status, &out);
+ LogAndReportError(status, &out);
}
}
ReportSuccess(val, out);
else
{
- LoggerE("Failed");
- ReportError(status, &out);
+ LogAndReportError(status, &out);
}
}
ReportSuccess(result, response->get<picojson::object>());
else
{
- LoggerE("Failed");
- ReportError(status, &response->get<JsonObject>());
+ LogAndReportError(status, &response->get<JsonObject>());
}
};
ReportSuccess(val, out);
else
{
- LoggerE("Failed");
- ReportError(status, &out);
+ LogAndReportError(status, &out);
}
}
std::string value_str;
PlatformResult status = CalendarRecord::TypeToUri(type, &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
std::string view_uri;
PlatformResult status = CalendarRecord::TypeToUri(type, &view_uri);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
calendar_record_h handle = nullptr;
status = GetById(id, view_uri.c_str(), &handle);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
PlatformResult status =
GetString(type, record.get(), "recurrence_id", &rid);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
if (rid.length() > 0) {
// @todo remove all occurrences
- LoggerE("Error: TODO: remove all occurrences");
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "TODO: remove all occurrences");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR,
+ "TODO: remove all occurrences");
}
}
- if (CALENDAR_ERROR_NONE != calendar_db_delete_record(view_uri.c_str(), id)) {
+ int ret = calendar_db_delete_record(view_uri.c_str(), id);
+ if (CALENDAR_ERROR_NONE != ret) {
LOGE("Calendar record delete error");
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Record deletion error");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Record deletion error",
+ ("calendar_db_delete_record error: %d (%s)", ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
LoggerD("Enter");
if (platform_property_map_.find(property) == platform_property_map_.end()) {
std::string message = std::string("Undefined property ") + property;
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, message);
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, message);
}
auto prop = platform_property_map_.at(property);
if (prop.find(type) == prop.end()) {
- LoggerE("Property %s not defined for type %d", property.c_str(), type);
- return PlatformResult(
- ErrorCode::INVALID_VALUES_ERR,
- std::string("Property %s not defined for type ", property.c_str()) +
- std::to_string(type));
+ return LogAndCreateResult(
+ ErrorCode::INVALID_VALUES_ERR,
+ std::string("Property %s not defined for type ", property.c_str()) +
+ std::to_string(type));
}
*value = prop.at(type);
auto iter = platform_enum_map_.find(field);
if (iter == platform_enum_map_.end()) {
std::string message = std::string("Undefined platform enum type ") + field;
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, message);
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, message);
}
auto def = platform_enum_map_.at(field);
std::string message =
"Platform enum value " + value + " not found for " + field;
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR, message);
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, message);
}
PlatformResult CalendarItem::PlatformEnumToString(const std::string& field,
auto iter = platform_enum_reverse_map_.find(field);
if (iter == platform_enum_reverse_map_.end()) {
std::string message = std::string("Undefined platform enum type ") + field;
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, message);
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, message);
}
auto def = platform_enum_reverse_map_.at(field);
std::string message = "Platform enum value " + std::to_string(value) +
" not found for " + field;
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR, message);
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR, message);
}
PlatformResult CalendarItem::SetString(int type, calendar_record_h rec,
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
if (prop != -1u) {
PlatformResult status = CalendarRecord::SetString(rec, prop, value);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int value_int;
PlatformResult status = StringToPlatformEnum(enum_name, value, &value_int);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetInt(type, rec, property, value_int);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int value_int;
PlatformResult status = StringToPlatformEnum(enum_name, value, &value_int);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::SetInt(rec, property, value_int);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int value;
PlatformResult status = GetInt(type, rec, property, &value);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int value;
PlatformResult status = CalendarRecord::GetInt(rec, property, &value);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int ret = calendar_record_set_double(rec, prop, value);
-
if (CALENDAR_ERROR_NONE != ret) {
- LoggerW("Can't set double value to record: %d", ret);
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Set double to record failed.");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Set double to record failed.",
+ ("calendar_record_set_double error: %d (%s)", ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int ret = calendar_record_get_double(rec, prop, value);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerW("Can't get double value form record: %d", ret);
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Get int from record failed.");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Get int from record failed.",
+ ("calendar_record_get_double error: %d (%s)", ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int ret = calendar_record_set_caltime(rec, property, value);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerW("Can't set caltime value to record: %d", ret);
+ LoggerW("Can't set caltime value to record: %d (%s)", ret, get_error_message(ret));
if (throw_on_error) {
std::string message = "Set caltime to record failed.";
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, message);
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, message);
}
}
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
LoggerW("Can't get calendar_time value form record: %d", ret);
if (throw_on_error) {
std::string message = "Can't get calendar_time value form record";
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, message);
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, message);
}
}
}
if (throw_on_error) {
std::string message = "Set long long int to record failed.";
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, message);
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, message);
}
}
unsigned int prop;
PlatformResult status = GetPlatformProperty(type, property, &prop);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
LoggerW("Can't get lli value form record: %d", ret);
if (throw_on_error) {
std::string message = "Get lli from record failed.";
- LoggerE("Error: %s", message.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, message);
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, message);
}
}
PlatformResult status = SetString(type, rec, "categories", categories);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
std::string categories;
PlatformResult status = GetString(type, rec, "categories", &categories);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int ret = calendar_record_create(_calendar_attendee._uri, &attendee);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Fail to create attendee record, error code: %d", ret);
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Fail to create attendee record");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Fail to create attendee record",
+ ("Fail to create attendee record, error code: %d (%s)",
+ ret, get_error_message(ret)));
}
PlatformResult status =
CalendarRecord::SetString(attendee, _calendar_attendee.email,
common::FromJson<std::string>(obj, "uri"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
CalendarRecord::SetString(attendee, _calendar_attendee.name,
common::FromJson<std::string>(obj, "name"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
status = SetEnum(attendee, _calendar_attendee.role, kAttendeeRole,
common::FromJson<std::string>(obj, "role"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetEnum(attendee, _calendar_attendee.status, kAttendeeStatus,
common::FromJson<std::string>(obj, "status"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::SetInt(attendee, _calendar_attendee.rsvp,
common::FromJson<bool>(obj, "RSVP"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetEnum(attendee, _calendar_attendee.cutype, kAttendeeType,
common::FromJson<std::string>(obj, "type"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::SetString(attendee, _calendar_attendee.group,
common::FromJson<std::string>(obj, "group"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
attendee, _calendar_attendee.delegator_uri,
common::FromJson<std::string>(obj, "delegatorURI"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
attendee, _calendar_attendee.delegatee_uri,
common::FromJson<std::string>(obj, "delegateURI"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
attendee, _calendar_attendee.uid,
common::FromJson<std::string>(obj, "contactRef", "contactId"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::SetInt(attendee, _calendar_attendee.person_id,
common::stol(address_book));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
} else {
status = AddChildRecord(rec, property, attendee);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
unsigned int count = 0;
PlatformResult status = GetChildRecordCount(rec, property, true, &count);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
if (!count) {
}
calendar_list_h list;
- if (CALENDAR_ERROR_NONE !=
- calendar_record_clone_child_record_list(rec, property, &list)) {
- LoggerE("Can't get attendee list");
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Can't get attendee list");
+ int ret = calendar_record_clone_child_record_list(rec, property, &list);
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Can't get attendee list",
+ ("calendar_record_clone_child_record_list error: %d (%s)",
+ ret, get_error_message(ret)));
}
CalendarListPtr(list, CalendarRecord::ListDeleter);
PlatformResult status = CalendarRecord::GetString(
attendee, _calendar_attendee.email, &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["uri"] = picojson::value(value_str);
status = CalendarRecord::GetString(attendee, _calendar_attendee.name,
&value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["name"] = picojson::value(value_str);
status =
GetEnum(attendee, _calendar_attendee.role, kAttendeeRole, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["role"] = picojson::value(enum_str);
status = GetEnum(attendee, _calendar_attendee.status, kAttendeeStatus,
&enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["status"] = picojson::value(enum_str);
status =
CalendarRecord::GetInt(attendee, _calendar_attendee.rsvp, &value_int);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["RSVP"] = picojson::value(static_cast<bool>(value_int));
status =
GetEnum(attendee, _calendar_attendee.cutype, kAttendeeType, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["type"] = picojson::value(enum_str);
status = CalendarRecord::GetString(attendee, _calendar_attendee.group,
&value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["group"] = picojson::value(value_str);
status = CalendarRecord::GetString(
attendee, _calendar_attendee.delegator_uri, &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["delegatorURI"] = picojson::value(value_str);
status = CalendarRecord::GetString(
attendee, _calendar_attendee.delegatee_uri, &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
attendee_obj["delegateURI"] = picojson::value(value_str);
status = CalendarRecord::GetString(attendee, _calendar_attendee.uid,
&contact_id);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::GetInt(attendee, _calendar_attendee.person_id,
&book_id);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int ret = calendar_record_create(_calendar_alarm._uri, &alarm);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Fail to create attendee record, error code: %d", ret);
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Fail to create attendee record");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Fail to create attendee record",
+ ("Fail to create attendee record, error: %d (%s)",
+ ret, get_error_message(ret)));
}
int tick_unit = CALENDAR_ALARM_TIME_UNIT_SPECIFIC;
PlatformResult status =
SetCaltime(alarm, _calendar_alarm.alarm_time, absolute_date);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status =
CalendarRecord::SetInt(alarm, _calendar_alarm.tick_unit, tick_unit);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
PlatformResult status =
CalendarRecord::SetInt(alarm, _calendar_alarm.tick, tick);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status =
CalendarRecord::SetInt(alarm, _calendar_alarm.tick_unit, tick_unit);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
PlatformResult status =
SetEnum(alarm, _calendar_alarm.action, kAlarmMethod, method);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
alarm, _calendar_alarm.description,
common::FromJson<std::string>(obj, "description"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = AddChildRecord(rec, property, alarm);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
unsigned int count = 0;
PlatformResult status = GetChildRecordCount(rec, property, true, &count);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
if (!count) {
}
calendar_list_h list;
- if (CALENDAR_ERROR_NONE !=
- calendar_record_clone_child_record_list(rec, property, &list)) {
- LoggerW("Can't get alarms list");
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Can't get alarms list");
+ int ret = calendar_record_clone_child_record_list(rec, property, &list);
+ if (CALENDAR_ERROR_NONE != ret) {
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Can't get alarms list",
+ ("Can't get alarms list %d (%s)", ret, get_error_message(ret)));
}
CalendarListPtr(list, CalendarRecord::ListDeleter);
PlatformResult status =
CalendarRecord::GetInt(alarm, _calendar_alarm.tick_unit, &tick_unit);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
calendar_time_s result;
status = GetCaltime(alarm, _calendar_alarm.alarm_time, &result);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
} else {
status = CalendarRecord::GetInt(alarm, _calendar_alarm.tick, &tick);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
std::string enum_str;
status = GetEnum(alarm, _calendar_alarm.action, kAlarmMethod, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
alarm_obj["method"] = picojson::value(enum_str);
&value_str);
alarm_obj["description"] = picojson::value(value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
PlatformResult status =
SetEnum(rec, _calendar_event.freq, kRecurrenceRuleFrequency, frequency);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
const unsigned short interval = common::FromJson<double>(rrule, "interval");
status = CalendarRecord::SetInt(rec, _calendar_event.interval, interval);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status =
CalendarRecord::SetInt(rec, _calendar_event.count, occurrence_count);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::SetInt(rec, _calendar_event.range_type,
CALENDAR_RANGE_COUNT);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
status = SetCaltime(rec, _calendar_event.until_time,
DateToPlatform(until, false));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::SetInt(rec, _calendar_event.range_type,
CALENDAR_RANGE_UNTIL);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
}
status = CalendarRecord::SetString(rec, _calendar_event.byday, byday);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
status = CalendarRecord::SetString(rec, _calendar_event.bysetpos, bysetpos);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
ExceptionsFromJson(
common::FromJson<picojson::array>(rrule, "exceptions")));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
PlatformResult status =
GetEnum(rec, _calendar_event.freq, kRecurrenceRuleFrequency, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["frequency"] = picojson::value(enum_str);
status =
CalendarRecord::GetInt(rec, _calendar_event.interval, &interval);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["interval"] = picojson::value(static_cast<double>(interval));
std::string value_str;
status = CalendarRecord::GetString(rec, _calendar_event.byday, &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["daysOfTheWeek"] = picojson::value(StringToArray(value_str));
status = CalendarRecord::GetString(rec, _calendar_event.bysetpos, &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["setPositions"] = picojson::value(StringToArray(value_str));
status = CalendarRecord::GetString(rec, _calendar_event.exdate, &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
const picojson::array& exceptions = StringToArray(value_str);
calendar_time_s cal;
PlatformResult status = GetCaltime(type, rec, property + "_time", &cal);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
std::string tzid;
status = GetString(type, rec, property + "_tzid", &tzid);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
calendar_time_s cal;
PlatformResult status = GetCaltime(rec, property, &cal);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
const picojson::object& in) {
LoggerD("Enter");
if (in.empty()) {
- LoggerE("Empty CalendarItem object.");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Empty Calendar object.");
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR,
+ "Empty Calendar object.");
}
PlatformResult status = SetString(type, rec, "description", in, true);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetString(type, rec, "summary", in, true);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetString(type, rec, "location", in, true);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetString(type, rec, "organizer", in, true);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetCaltime(type, rec, "startDate_time",
DateToPlatform(start, is_all_day));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetString(type, rec, "startDate_tzid", start.time_zone_);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
status = SetCaltime(type, rec, end_property + "_time",
DateToPlatform(end, is_all_day));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetString(type, rec, end_property + "_tzid", end.time_zone_);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
status = SetEnum(type, rec, "visibility", in, kItemVisibility);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
SetDouble(type, rec, "latitude",
common::FromJson<double>(in, "geolocation", "latitude"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
SetDouble(type, rec, "longitude",
common::FromJson<double>(in, "geolocation", "longitude"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
status = CategoriesFromJson(
type, rec, common::FromJson<picojson::array>(in, "categories"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = AttendeesFromJson(
type, rec, common::FromJson<picojson::array>(in, "attendees"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = AlarmsFromJson(type, rec,
common::FromJson<picojson::array>(in, "alarms"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
if (type == CALENDAR_BOOK_TYPE_EVENT) {
status = SetEnum(type, rec, "priority", in, kEventPriority);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetEnum(type, rec, "status", in, kEventStatus);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetEnum(type, rec, "availability", in, kEventAvailability);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = RecurrenceRuleFromJson(
rec, common::FromJson<picojson::object>(in, "recurrenceRule"));
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
} else {
status = SetEnum(type, rec, "priority", in, kTaskPriority);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = SetEnum(type, rec, "status", in, kTaskStatus);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
SetLli(rec, _calendar_todo.completed_time,
DateFromJson(in, "completedDate").utc_timestamp_);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
PlatformResult status = SetInt(type, rec, "progress", in);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
}
picojson::object* out_ptr) {
LoggerD("Enter");
if (NULL == rec) {
- LoggerE("Calendar record is null");
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Calendar record is null");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Calendar record is null");
}
picojson::object& out = *out_ptr;
int id;
PlatformResult status = GetInt(type, rec, "id", &id);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
std::string rid;
status = GetString(type, rec, "recurrence_id", &rid);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
int calendar_id;
status = GetInt(type, rec, "calendar_id", &calendar_id);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["calendarId"] = picojson::value(std::to_string(calendar_id));
std::string value_str;
status = GetString(type, rec, "description", &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["description"] = picojson::value(value_str);
status = GetString(type, rec, "summary", &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["summary"] = picojson::value(value_str);
status = GetString(type, rec, "location", &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["location"] = picojson::value(value_str);
status = GetString(type, rec, "organizer", &value_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["organizer"] = picojson::value(value_str);
int value_int;
status = GetInt(type, rec, "isAllDay", &value_int);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["isAllDay"] = picojson::value(static_cast<bool>(value_int));
(type == CALENDAR_BOOK_TYPE_EVENT) ? "endDate" : "dueDate";
status = DateFromPlatform(type, rec, endProperty, &date_from_platform);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out[endProperty] = DateToJson(&date_from_platform);
long long int lli;
status = GetLli(type, rec, "lastModificationDate", &lli);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["lastModificationDate"] = picojson::value(static_cast<double>(lli));
double latitude;
status = GetDouble(type, rec, "latitude", &latitude);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
double longitude;
status = GetDouble(type, rec, "longitude", &longitude);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
std::string enum_str;
status = GetEnum(type, rec, "visibility", kItemVisibility, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["visibility"] = picojson::value(enum_str);
picojson::array attendees = picojson::array();
status = AttendeesToJson(type, rec, &attendees);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["attendees"] = picojson::value(attendees);
picojson::array categories = picojson::array();
status = CategoriesToJson(type, rec, &categories);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["categories"] = picojson::value(categories);
picojson::array alarms = picojson::array();
status = AlarmsToJson(type, rec, &alarms);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["alarms"] = picojson::value(alarms);
if (type == CALENDAR_BOOK_TYPE_EVENT) {
status = GetEnum(type, rec, "status", kEventStatus, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["status"] = picojson::value(enum_str);
status = GetEnum(type, rec, "priority", kEventPriority, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["priority"] = picojson::value(enum_str);
status = GetEnum(type, rec, "availability", kEventAvailability, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["availability"] = picojson::value(enum_str);
int occurrence_count;
status = CalendarRecord::GetInt(rec, _calendar_event.count, &occurrence_count);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = RecurrenceRuleToJson(rec, &rec_rule);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["recurrenceRule"] = picojson::value(rec_rule);
} else {
status = GetEnum(type, rec, "status", kTaskStatus, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["status"] = picojson::value(enum_str);
status = GetEnum(type, rec, "priority", kTaskPriority, &enum_str);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["priority"] = picojson::value(enum_str);
long long int lli;
status = GetLli(rec, _calendar_todo.completed_time, &lli);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["completedDate"] = picojson::value(static_cast<double>(lli));
status = GetInt(type, rec, "progress", &value_int);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
out["progress"] = picojson::value(static_cast<double>(value_int));
JsonArray& array) {
LoggerD("Enter");
if (!is_connected_) {
- LoggerE("DB Connection failed.");
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
const std::string& type = FromJson<std::string>(args, "type");
PlatformResult status =
CalendarRecord::CheckReturn(ret, "Failed to get list");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
ret = calendar_list_get_count(list, &count);
status = CalendarRecord::CheckReturn(ret, "Failed to get list size");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::CheckReturn(
ret, "Failed to move list to the first position");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
ret = calendar_list_get_current_record_p(list, &calendar);
status = CalendarRecord::CheckReturn(ret, "Failed to get current record");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
PlatformResult status = CalendarRecord::GetInt(
calendar, _calendar_book.store_type, &store_type);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::CalendarToJson(calendar,
&array.back().get<JsonObject>());
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
JsonObject& out) {
LoggerD("Enter");
if (!is_connected_) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
int id = common::stol(FromJson<std::string>(args, "id"));
PlatformResult status =
CalendarRecord::GetById(id, _calendar_book._uri, &handle);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::GetInt(record_ptr.get(), _calendar_book.store_type,
&calendar_type);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
if (type != calendar_type) {
- LoggerD("Calendar type doesn't match requested type");
- return PlatformResult(ErrorCode::NOT_FOUND_ERR, "Calendar not found");
+ return LogAndCreateResult(
+ ErrorCode::NOT_FOUND_ERR, "Calendar not found",
+ ("Calendar type doesn't match requested type %s", type));
}
status = CalendarRecord::CalendarToJson(record_ptr.get(), &out);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
JsonObject& out) {
LoggerD("Enter");
if (!is_connected_) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ 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()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::CalendarFromJson(record_ptr.get(), calendar);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
status = CalendarRecord::CheckReturn(
ret, "Failed to insert calendar record into db");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
JsonObject& out) {
LoggerD("Enter");
if (!is_connected_) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "DB Connection failed.");
}
int id = common::stol(FromJson<std::string>(args, "id"));
if (id == kUnifiedCalendardId) {
- LoggerE("Unified calendar can not be deleted");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Unified calendar can not be deleted");
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR,
+ "Unified calendar can not be deleted");
} else if (id == DEFAULT_EVENT_CALENDAR_BOOK_ID) {
- LoggerE("Default event calendar can not be deleted");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Default event calendar can not be deleted");
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR,
+ "Default event calendar can not be deleted");
} else if (id == DEFAULT_TODO_CALENDAR_BOOK_ID) {
- LoggerE("Default todo calendar can not be deleted");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Default todo calendar can not be deleted");
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR,
+ "Default todo calendar can not be deleted");
}
int ret = calendar_db_delete_record(_calendar_book._uri, id);
PlatformResult status =
CalendarRecord::CheckReturn(ret, "Failed to delete record from db");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
const std::string& error_name) {
LoggerD("Enter");
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("%s : %d", error_name.c_str(), ret);
- return PlatformResult(ErrorCode::UNKNOWN_ERR, error_name);
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, error_name,
+ ("%s : %d (%s)", error_name.c_str(), ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
char* value = NULL;
int ret = calendar_record_get_str(rec, property, &value);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Can't get string value form record: %d", ret);
+ LoggerE("Can't get string value form record: %d (%s)",
+ ret, get_error_message(ret));
if (throw_on_error) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Get string from record failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Get string from record failed.");
}
}
value.empty() ? NULL : value.c_str());
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Can't set string value to record: %d", ret);
+ LoggerE("Can't set string value to record: %d (%s)",
+ ret, get_error_message(ret));
if (throw_on_error) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Set string to record failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR,
+ "Set string to record failed.");
}
}
LoggerD("Enter");
int ret = calendar_record_get_int(rec, property, value);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Can't get int value form record: %d", ret);
+ LoggerE("Can't get int value form record: %d (%s)",
+ ret, get_error_message(ret));
if (throw_on_error) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Get int from record failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR,
+ "Get int from record failed.");
}
}
int ret = calendar_record_set_int(record, property, value);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Can't set int value to record: %d", ret);
+ LoggerE("Can't set int value to record: %d (%s)",
+ ret, get_error_message(ret));
if (throw_on_error) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Set int to record failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR,
+ "Set int to record failed.");
}
}
} else if (kCalendarTypeTask == type) {
*uri = _calendar_todo._uri;
} else {
- LoggerE("Undefined record type: %s", type.c_str());
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Undefined record type");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Undefined record type",
+ ("Undefined record type: %s", type.c_str()));
}
return PlatformResult(ErrorCode::NO_ERROR);
} else if (CALENDAR_BOOK_TYPE_TODO == type) {
*uri = _calendar_todo._uri;
} else {
- LoggerE("Undefined record type: %d", type);
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Undefined record type");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Undefined record type",
+ ("Undefined record type: %d", type));
}
return PlatformResult(ErrorCode::NO_ERROR);
LoggerD("Enter");
int ret = calendar_record_create(view_uri, handle);
if (CALENDAR_ERROR_NONE != ret || nullptr == handle) {
- LoggerE("Fail to create calendar record, error code: %d", ret);
- return PlatformResult(ErrorCode::NOT_FOUND_ERR,
- "Fail to create calendar record");
+ return LogAndCreateResult(
+ ErrorCode::NOT_FOUND_ERR, "Fail to create calendar record",
+ ("Fail to create calendar record, error code: %d (%s)",
+ ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
LoggerD("Enter");
int ret = calendar_db_get_record(view_uri, id, handle);
if (CALENDAR_ERROR_NONE != ret || nullptr == handle) {
- LoggerE("Fail to get calendar record %d for view %s, error code: %d", id,
- view_uri, ret);
- return PlatformResult(ErrorCode::NOT_FOUND_ERR,
- "Fail to get record with given id");
+ return LogAndCreateResult(
+ ErrorCode::NOT_FOUND_ERR, "Fail to get record with given id",
+ ("Fail to get calendar record %d for view %s, error code: %d (%s)",
+ id, view_uri, ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
int ret = calendar_db_insert_record(rec, record_id);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Cannot insert record, error code: %d", ret);
- return PlatformResult(ErrorCode::NOT_FOUND_ERR, "Cannot insert record");
+ return LogAndCreateResult(
+ ErrorCode::NOT_FOUND_ERR, "Cannot insert record",
+ ("Cannot insert record, error code: %d (%s)",
+ ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
if (child) {
calendar_record_destroy(child, true);
}
- LoggerE("Cannot add child record, error code: %d", ret);
- return PlatformResult(ErrorCode::NOT_FOUND_ERR, "Cannot add child record");
+ return LogAndCreateResult(
+ ErrorCode::NOT_FOUND_ERR, "Cannot add child record",
+ ("Cannot add child record, error code: %d (%s)",
+ ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
LoggerD("Enter");
int ret = calendar_record_get_child_record_count(rec, property, value);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Can't get child record count: %d", ret);
+ LoggerE("Can't get child record count: %d (%s)", ret, get_error_message(ret));
if (throw_on_error) {
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Get child record count failed.");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR,
+ "Get child record count failed.");
}
}
LoggerD("Enter");
int ret = calendar_record_get_child_record_at_p(rec, property, index, result);
if (CALENDAR_ERROR_NONE != ret) {
- LoggerE("Can't get child record at: %d", ret);
- return PlatformResult(ErrorCode::UNKNOWN_ERR,
- "Get child record at failed.");
+ return LogAndCreateResult(
+ ErrorCode::UNKNOWN_ERR, "Get child record at failed.",
+ ("Can't get child record at: %d (%s)", ret, get_error_message(ret)));
}
return PlatformResult(ErrorCode::NO_ERROR);
picojson::object& out = *out_ptr;
if (NULL == rec) {
- LoggerE("Calendar record is null");
- return PlatformResult(ErrorCode::UNKNOWN_ERR, "Calendar record is null");
+ return LogAndCreateResult(ErrorCode::UNKNOWN_ERR, "Calendar record is null");
}
int id = 0;
std::string name;
status = GetString(rec, _calendar_book.name, &name);
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
const picojson::object& in) {
LoggerD("Enter");
if (in.empty()) {
- LoggerE("Empty Calendar object.");
- return PlatformResult(ErrorCode::INVALID_VALUES_ERR,
- "Empty Calendar object.");
+ return LogAndCreateResult(ErrorCode::INVALID_VALUES_ERR,
+ "Empty Calendar object.");
}
const std::string& name = FromJson<std::string>(in, "name");
int ret = calendar_record_set_str(rec, _calendar_book.name, name.c_str());
PlatformResult status = CheckReturn(ret, "Failed to set name");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
ret = calendar_record_set_int(rec, _calendar_book.account_id, account_id);
status = CheckReturn(ret, "Failed to set account_id");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}
ret = calendar_record_set_int(rec, _calendar_book.store_type, store_type);
status = CheckReturn(ret, "Failed to set store_type");
if (status.IsError()) {
- LoggerE("Error: %s", status.message().c_str());
return status;
}