[evolution-couchdb] Store postal addresses when saving contacts to the database
- From: Rodrigo Moya <rodrigo src gnome org>
- To: svn-commits-list gnome org
- Subject: [evolution-couchdb] Store postal addresses when saving contacts to the database
- Date: Wed, 24 Jun 2009 16:07:18 +0000 (UTC)
commit 6f56e2e87457cf169071ba19763c290a2e19e102
Author: Rodrigo Moya <rodrigo gnome-db org>
Date: Wed Jun 24 18:01:55 2009 +0200
Store postal addresses when saving contacts to the database
addressbook/e-book-backend-couchdb.c | 52 +++++++++++++++++++++++++++++++++-
1 files changed, 51 insertions(+), 1 deletions(-)
---
diff --git a/addressbook/e-book-backend-couchdb.c b/addressbook/e-book-backend-couchdb.c
index d5872a5..7137c29 100644
--- a/addressbook/e-book-backend-couchdb.c
+++ b/addressbook/e-book-backend-couchdb.c
@@ -163,6 +163,7 @@ couch_document_from_contact (EBookBackendCouchDB *couchdb_backend, EContact *con
gint i;
const char *str;
CouchDBDocument *document;
+ EContactAddress *contact_address;
/* create the CouchDBDocument to put on the database */
document = couchdb_document_new (couchdb_backend->couchdb);
@@ -228,7 +229,56 @@ couch_document_from_contact (EBookBackendCouchDB *couchdb_backend, EContact *con
g_slist_free (list);
}
- /* FIXME: addresses */
+ /* postal addresses */
+ list = NULL;
+ contact_address = e_contact_get_const (contact, E_CONTACT_ADDRESS_HOME);
+ if (contact_address) {
+ CouchDBStructField *sf;
+
+ sf = couchdb_document_contact_address_new (contact_address->street,
+ contact_address->locality,
+ contact_address->region,
+ contact_address->country,
+ contact_address->code,
+ contact_address->po,
+ "home");
+ list = g_slist_append (list, sf);
+ }
+
+ contact_address = e_contact_get_const (contact, E_CONTACT_ADDRESS_WORK);
+ if (contact_address) {
+ CouchDBStructField *sf;
+
+ sf = couchdb_document_contact_address_new (contact_address->street,
+ contact_address->locality,
+ contact_address->region,
+ contact_address->country,
+ contact_address->code,
+ contact_address->po,
+ "work");
+ list = g_slist_append (list, sf);
+ }
+
+ contact_address = e_contact_get_const (contact, E_CONTACT_ADDRESS_OTHER);
+ if (contact_address) {
+ CouchDBStructField *sf;
+
+ sf = couchdb_document_contact_address_new (contact_address->street,
+ contact_address->locality,
+ contact_address->region,
+ contact_address->country,
+ contact_address->code,
+ contact_address->po,
+ "other");
+ list = g_slist_append (list, sf);
+ }
+
+ if (list) {
+ couchdb_document_contact_set_addresses (document, list);
+
+ g_slist_foreach (list, (GFunc) couchdb_struct_field_unref, NULL);
+ g_slist_free (list);
+ }
/* birth date */
dt = (EContactDate *) e_contact_get_const (contact, E_CONTACT_BIRTH_DATE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]