summaryrefslogtreecommitdiff
path: root/extra/gnome-online-accounts/drop-google-password-interface-2.patch
blob: 9aa1ce28e6232a640d4ecbc8fddbe784f3871aaa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
From a0fd4cd595bd0fe6eb4015ea9050170319b16546 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 19 Jun 2013 15:04:38 +0000
Subject: google: Export CalDAV and CardDAV endpoints

According to:
https://developers.google.com/google-apps/calendar/caldav/v2/guide/
https://developers.google.com/google-apps/carddav/

See: https://bugzilla.gnome.org/show_bug.cgi?id=686804
     https://bugzilla.gnome.org/show_bug.cgi?id=688364
---
(limited to 'src/goabackend/goagoogleprovider.c')

diff --git a/src/goabackend/goagoogleprovider.c b/src/goabackend/goagoogleprovider.c
index 79f5f73..740c08e 100644
--- a/src/goabackend/goagoogleprovider.c
+++ b/src/goabackend/goagoogleprovider.c
@@ -385,6 +385,7 @@ build_object (GoaProvider         *provider,
   gboolean contacts_enabled;
   gboolean chat_enabled;
   gboolean documents_enabled;
+  const gchar *email_address;
 
   account = NULL;
   mail = NULL;
@@ -419,6 +420,7 @@ build_object (GoaProvider         *provider,
     }
 
   account = goa_object_get_account (GOA_OBJECT (object));
+  email_address = goa_account_get_identity (account);
 
   /* Email */
   mail = goa_object_get_mail (GOA_OBJECT (object));
@@ -427,8 +429,6 @@ build_object (GoaProvider         *provider,
     {
       if (mail == NULL)
         {
-          const gchar *email_address;
-          email_address = goa_account_get_identity (account);
           mail = goa_mail_skeleton_new ();
           g_object_set (G_OBJECT (mail),
                         "email-address",   email_address,
@@ -457,8 +457,19 @@ build_object (GoaProvider         *provider,
     {
       if (calendar == NULL)
         {
+          gchar *uri_caldav;
+
+          uri_caldav = g_strconcat ("https://apidata.googleusercontent.com/caldav/v2/",
+                                    email_address,
+                                    "/user",
+                                    NULL);
+
           calendar = goa_calendar_skeleton_new ();
+          g_object_set (G_OBJECT (calendar),
+                        "uri", uri_caldav,
+                        NULL);
           goa_object_skeleton_set_calendar (object, calendar);
+          g_free (uri_caldav);
         }
     }
   else
@@ -475,6 +486,9 @@ build_object (GoaProvider         *provider,
       if (contacts == NULL)
         {
           contacts = goa_contacts_skeleton_new ();
+          g_object_set (G_OBJECT (contacts),
+                        "uri", "https://www.googleapis.com/.well-known/carddav",
+                        NULL);
           goa_object_skeleton_set_contacts (object, contacts);
         }
     }