ContactPtr AddressBook::get(const std::string &contactId)
{
LogDebug("entered");
- if(contactId == "")
- ThrowMsg(InvalidArgumentException, "contactId argument is wrong");
- ContactSearchEnginePtr searchEngine(new ContactSearchEngine(ContactSearchEngine::CONTACT_QUERY));
-
- searchEngine->setCondition(contactId);
- searchEngine->setAttributeOfInterest();
- searchEngine->setSortMode();
-
- ContactArrayPtr contacts = searchEngine->getContactSearchResult();
-
- if(contacts->size() == 0)
- ThrowMsg(NotFoundException, "No contact with ID:" << contactId);
-
- return contacts->at(0);
+ return internalGetById(contactId);
}
void AddressBook::add(const ContactPtr &contact)
LogError("error code " << id);
ThrowMsg(PlatformException, "Error during executing contacts_svc_insert_contact()");
}
- newContact->setId(id);
+
+ std::stringstream oss;
+ oss << id;
+ std::string idStr = oss.str();
+ ContactPtr insertedContact = internalGetById(idStr);
+
+ newContact->copy(insertedContact);
}
}
ThrowMsg(PlatformException, "Error during executing contacts_svc_delete_contact()");
}
+ContactPtr AddressBook::internalGetById(const std::string &contactId)
+{
+ if(contactId == "")
+ ThrowMsg(InvalidArgumentException, "contactId argument is wrong");
+
+ ContactSearchEnginePtr searchEngine(new ContactSearchEngine(ContactSearchEngine::CONTACT_QUERY));
+
+ searchEngine->setCondition(contactId);
+ searchEngine->setAttributeOfInterest();
+ searchEngine->setSortMode();
+
+ ContactArrayPtr contacts = searchEngine->getContactSearchResult();
+
+ if(contacts->size() == 0)
+ ThrowMsg(NotFoundException, "No contact with ID:" << contactId);
+
+ return contacts->at(0);
+}
+
void AddressBook::contactsSvcContactChangedCallback(void *data)
{
AddressBook *addressBook = static_cast<AddressBook *>(data);