[libgdata] Revert "tasks: Re-add ISO 8601 formatting workaround for Tasks service"



commit 0851328783fda2afccc35a034301d54a2a00b36b
Author: Philip Withnall <withnall endlessm com>
Date:   Wed Aug 23 10:26:15 2017 +0100

    Revert "tasks: Re-add ISO 8601 formatting workaround for Tasks service"
    
    This reverts commit d10155034b0fa2e43e2889e55157798ce073f807.
    
    It looks like Google may now have fixed the timezone formatting bug in
    their Tasks services (they had previously fixed it in their other services;
    see bug #780067).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=785952

 gdata/gdata-parser.c                        |   31 ----------------
 gdata/gdata-parser.h                        |    1 -
 gdata/services/tasks/gdata-tasks-query.c    |   10 +++---
 gdata/services/tasks/gdata-tasks-task.c     |   49 +++-----------------------
 gdata/services/tasks/gdata-tasks-tasklist.c |   50 ---------------------------
 gdata/tests/tasks.c                         |   34 +++++++++---------
 6 files changed, 27 insertions(+), 148 deletions(-)
---
diff --git a/gdata/gdata-parser.c b/gdata/gdata-parser.c
index ef10a47..a43c2ec 100644
--- a/gdata/gdata-parser.c
+++ b/gdata/gdata-parser.c
@@ -248,37 +248,6 @@ gdata_parser_int64_to_iso8601 (gint64 _time)
        return g_time_val_to_iso8601 (&time_val);
 }
 
-gchar *
-gdata_parser_int64_to_iso8601_numeric_timezone (gint64 _time)
-{
-       GTimeVal time_val;
-       gchar *iso8601;
-       gchar **date_time_components;
-       gchar *retval;
-
-       time_val.tv_sec = _time;
-       time_val.tv_usec = 0;
-
-       iso8601 = g_time_val_to_iso8601 (&time_val);
-
-       /* FIXME: Work around for Google's incorrect ISO 8601 implementation.
-        * They appear to not like dates in the format ‘2014-08-09T21:07:05Z’
-        * which specify a timezone using ‘Z’ and no microseconds. This varies
-        * between services.
-        *
-        * See: https://bugzilla.gnome.org/show_bug.cgi?id=732809
-        * https://bugzilla.gnome.org/show_bug.cgi?id=780067
-        * https://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3595
-        * http://stackoverflow.com/a/17630320/2931197 */
-       date_time_components = g_strsplit (iso8601, "Z", 2);
-       retval = g_strjoinv (".000001+00:00", date_time_components);
-       g_strfreev (date_time_components);
-
-       g_free (iso8601);
-
-       return retval;
-}
-
 gboolean
 gdata_parser_int64_from_iso8601 (const gchar *date, gint64 *_time)
 {
diff --git a/gdata/gdata-parser.h b/gdata/gdata-parser.h
index 6f0303f..bc7a15a 100644
--- a/gdata/gdata-parser.h
+++ b/gdata/gdata-parser.h
@@ -46,7 +46,6 @@ gdata_parser_error_from_json_error (JsonReader *reader,
 gboolean gdata_parser_int64_from_date (const gchar *date, gint64 *_time);
 gchar *gdata_parser_date_from_int64 (gint64 _time) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
 gchar *gdata_parser_int64_to_iso8601 (gint64 _time) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
-gchar *gdata_parser_int64_to_iso8601_numeric_timezone (gint64 _time) G_GNUC_WARN_UNUSED_RESULT G_GNUC_MALLOC;
 gboolean gdata_parser_int64_from_iso8601 (const gchar *date, gint64 *_time);
 
 /*
diff --git a/gdata/services/tasks/gdata-tasks-query.c b/gdata/services/tasks/gdata-tasks-query.c
index 80ff702..627dc86 100644
--- a/gdata/services/tasks/gdata-tasks-query.c
+++ b/gdata/services/tasks/gdata-tasks-query.c
@@ -288,7 +288,7 @@ get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboo
 
                APPEND_SEP
                g_string_append (query_uri, "updatedMin=");
-               updated_min = gdata_parser_int64_to_iso8601_numeric_timezone (gdata_query_get_updated_min 
(GDATA_QUERY (self)));
+               updated_min = gdata_parser_int64_to_iso8601 (gdata_query_get_updated_min (GDATA_QUERY 
(self)));
                g_string_append (query_uri, updated_min);
                g_free (updated_min);
        }
@@ -298,7 +298,7 @@ get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboo
 
                APPEND_SEP
                g_string_append (query_uri, "completedMin=");
-               completed_min = gdata_parser_int64_to_iso8601_numeric_timezone (priv->completed_min);
+               completed_min = gdata_parser_int64_to_iso8601 (priv->completed_min);
                g_string_append (query_uri, completed_min);
                g_free (completed_min);
        }
@@ -308,7 +308,7 @@ get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboo
 
                APPEND_SEP
                g_string_append (query_uri, "completedMax=");
-               completed_max = gdata_parser_int64_to_iso8601_numeric_timezone (priv->completed_max);
+               completed_max = gdata_parser_int64_to_iso8601 (priv->completed_max);
                g_string_append (query_uri, completed_max);
                g_free (completed_max);
        }
@@ -318,7 +318,7 @@ get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboo
 
                APPEND_SEP
                g_string_append (query_uri, "dueMin=");
-               due_min = gdata_parser_int64_to_iso8601_numeric_timezone (priv->due_min);
+               due_min = gdata_parser_int64_to_iso8601 (priv->due_min);
                g_string_append (query_uri, due_min);
                g_free (due_min);
        }
@@ -328,7 +328,7 @@ get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboo
 
                APPEND_SEP
                g_string_append (query_uri, "dueMax=");
-               due_max = gdata_parser_int64_to_iso8601_numeric_timezone (priv->due_max);
+               due_max = gdata_parser_int64_to_iso8601 (priv->due_max);
                g_string_append (query_uri, due_max);
                g_free (due_max);
        }
diff --git a/gdata/services/tasks/gdata-tasks-task.c b/gdata/services/tasks/gdata-tasks-task.c
index 568c828..00490b8 100644
--- a/gdata/services/tasks/gdata-tasks-task.c
+++ b/gdata/services/tasks/gdata-tasks-task.c
@@ -333,50 +333,11 @@ get_json (GDataParsable *parsable, JsonBuilder *builder)
 {
        gchar *due;
        gchar *completed;
-       GList *i;
-       GDataLink *_link;
-       GDataEntry *entry = GDATA_ENTRY (parsable);
-       GDataTasksTaskPrivate *priv = GDATA_TASKS_TASK (parsable)->priv;
-
-       /* Add all the general JSON. We can’t chain up to #GDataEntry here
-        * because Google Tasks uses a different date format. */
-       json_builder_set_member_name (builder, "title");
-       json_builder_add_string_value (builder, gdata_entry_get_title (entry));
-
-       if (gdata_entry_get_id (entry)) {
-               json_builder_set_member_name (builder, "id");
-               json_builder_add_string_value (builder, gdata_entry_get_id (entry));
-       }
-
-       if (gdata_entry_get_updated (entry) != -1) {
-               gchar *updated = gdata_parser_int64_to_iso8601_numeric_timezone (gdata_entry_get_updated 
(entry));
-               json_builder_set_member_name (builder, "updated");
-               json_builder_add_string_value (builder, updated);
-               g_free (updated);
-       }
-
-       /* If we have a "kind" category, add that. */
-       for (i = gdata_entry_get_categories (entry); i != NULL; i = i->next) {
-               GDataCategory *category = GDATA_CATEGORY (i->data);
 
-               if (g_strcmp0 (gdata_category_get_scheme (category), "http://schemas.google.com/g/2005#kind";) 
== 0) {
-                       json_builder_set_member_name (builder, "kind");
-                       json_builder_add_string_value (builder, gdata_category_get_term (category));
-               }
-       }
-
-       /* Add the ETag, if available. */
-       if (gdata_entry_get_etag (entry) != NULL) {
-               json_builder_set_member_name (builder, "etag");
-               json_builder_add_string_value (builder, gdata_entry_get_etag (entry));
-       }
+       GDataTasksTaskPrivate *priv = GDATA_TASKS_TASK (parsable)->priv;
 
-       /* Add the self-link. */
-       _link = gdata_entry_look_up_link (GDATA_ENTRY (parsable), GDATA_LINK_SELF);
-       if (_link != NULL) {
-               json_builder_set_member_name (builder, "selfLink");
-               json_builder_add_string_value (builder, gdata_link_get_uri (_link));
-       }
+       /* Chain up to the parent class */
+       GDATA_PARSABLE_CLASS (gdata_tasks_task_parent_class)->get_json (parsable, builder);
 
        /* Add all the task specific JSON */
 
@@ -397,13 +358,13 @@ get_json (GDataParsable *parsable, JsonBuilder *builder)
                json_builder_add_string_value (builder, priv->status);
        }
        if (priv->due != -1) {
-               due = gdata_parser_int64_to_iso8601_numeric_timezone (priv->due);
+               due = gdata_parser_int64_to_iso8601 (priv->due);
                json_builder_set_member_name (builder, "due");
                json_builder_add_string_value (builder, due);
                g_free (due);
        }
        if (priv->completed != -1) {
-               completed = gdata_parser_int64_to_iso8601_numeric_timezone (priv->completed);
+               completed = gdata_parser_int64_to_iso8601 (priv->completed);
                json_builder_set_member_name (builder, "completed");
                json_builder_add_string_value (builder, completed);
                g_free (completed);
diff --git a/gdata/services/tasks/gdata-tasks-tasklist.c b/gdata/services/tasks/gdata-tasks-tasklist.c
index 2fbc470..1690c23 100644
--- a/gdata/services/tasks/gdata-tasks-tasklist.c
+++ b/gdata/services/tasks/gdata-tasks-tasklist.c
@@ -40,7 +40,6 @@
 #include "gdata-private.h"
 #include "gdata-types.h"
 
-static void get_json (GDataParsable *parsable, JsonBuilder *builder);
 static const gchar *get_content_type (void);
 
 G_DEFINE_TYPE (GDataTasksTasklist, gdata_tasks_tasklist, GDATA_TYPE_ENTRY)
@@ -51,7 +50,6 @@ gdata_tasks_tasklist_class_init (GDataTasksTasklistClass *klass)
        GDataParsableClass *parsable_class = GDATA_PARSABLE_CLASS (klass);
        GDataEntryClass *entry_class = GDATA_ENTRY_CLASS (klass);
 
-       parsable_class->get_json = get_json;
        parsable_class->get_content_type = get_content_type;
 
        entry_class->kind_term = "tasks#taskList";
@@ -63,54 +61,6 @@ gdata_tasks_tasklist_init (GDataTasksTasklist *self)
        /* Empty */
 }
 
-static void
-get_json (GDataParsable *parsable, JsonBuilder *builder)
-{
-       GList *i;
-       GDataLink *_link;
-       GDataEntry *entry = GDATA_ENTRY (parsable);
-
-       /* Add all the general JSON. We can’t chain up to #GDataEntry here
-        * because Google Tasks uses a different date format. */
-       json_builder_set_member_name (builder, "title");
-       json_builder_add_string_value (builder, gdata_entry_get_title (entry));
-
-       if (gdata_entry_get_id (entry)) {
-               json_builder_set_member_name (builder, "id");
-               json_builder_add_string_value (builder, gdata_entry_get_id (entry));
-       }
-
-       if (gdata_entry_get_updated (entry) != -1) {
-               gchar *updated = gdata_parser_int64_to_iso8601_numeric_timezone (gdata_entry_get_updated 
(entry));
-               json_builder_set_member_name (builder, "updated");
-               json_builder_add_string_value (builder, updated);
-               g_free (updated);
-       }
-
-       /* If we have a "kind" category, add that. */
-       for (i = gdata_entry_get_categories (entry); i != NULL; i = i->next) {
-               GDataCategory *category = GDATA_CATEGORY (i->data);
-
-               if (g_strcmp0 (gdata_category_get_scheme (category), "http://schemas.google.com/g/2005#kind";) 
== 0) {
-                       json_builder_set_member_name (builder, "kind");
-                       json_builder_add_string_value (builder, gdata_category_get_term (category));
-               }
-       }
-
-       /* Add the ETag, if available. */
-       if (gdata_entry_get_etag (entry) != NULL) {
-               json_builder_set_member_name (builder, "etag");
-               json_builder_add_string_value (builder, gdata_entry_get_etag (entry));
-       }
-
-       /* Add the self-link. */
-       _link = gdata_entry_look_up_link (GDATA_ENTRY (parsable), GDATA_LINK_SELF);
-       if (_link != NULL) {
-               json_builder_set_member_name (builder, "selfLink");
-               json_builder_add_string_value (builder, gdata_link_get_uri (_link));
-       }
-}
-
 static const gchar *
 get_content_type (void)
 {
diff --git a/gdata/tests/tasks.c b/gdata/tests/tasks.c
index 7ea4fd4..2e9a03e 100644
--- a/gdata/tests/tasks.c
+++ b/gdata/tests/tasks.c
@@ -125,11 +125,11 @@ test_query_uri (void)
                         "?updated-min=1970-01-01T01:53:09Z"
                         "&max-results=10"
                         "&maxResults=10"
-                        "&updatedMin=1970-01-01T01:53:09.000001+00:00"
-                        "&completedMin=1970-01-01T01:34:38.000001+00:00"
-                        "&completedMax=1970-01-01T00:20:34.000001+00:00"
-                        "&dueMin=1970-01-01T00:39:05.000001+00:00"
-                        "&dueMax=1970-01-01T00:57:36.000001+00:00"
+                        "&updatedMin=1970-01-01T01:53:09Z"
+                        "&completedMin=1970-01-01T01:34:38Z"
+                        "&completedMax=1970-01-01T00:20:34Z"
+                        "&dueMin=1970-01-01T00:39:05Z"
+                        "&dueMax=1970-01-01T00:57:36Z"
                         "&showCompleted=true"
                         "&showDeleted=true"
                         "&showHidden=true");
@@ -153,11 +153,11 @@ test_query_uri (void)
                         "?updated-min=1970-01-01T01:53:09Z"
                         "&max-results=10"
                         "&maxResults=10"
-                        "&updatedMin=1970-01-01T01:53:09.000001+00:00"
-                        "&completedMin=1970-01-01T01:34:38.000001+00:00"
-                        "&completedMax=1970-01-01T00:20:34.000001+00:00"
-                        "&dueMin=1970-01-01T00:39:05.000001+00:00"
-                        "&dueMax=1970-01-01T00:57:36.000001+00:00"
+                        "&updatedMin=1970-01-01T01:53:09Z"
+                        "&completedMin=1970-01-01T01:34:38Z"
+                        "&completedMax=1970-01-01T00:20:34Z"
+                        "&dueMin=1970-01-01T00:39:05Z"
+                        "&dueMax=1970-01-01T00:57:36Z"
                         "&showCompleted=false"
                         "&showDeleted=false"
                         "&showHidden=false");
@@ -322,8 +322,8 @@ test_task_properties (void)
                        "\"title\": \"some-other-title\","
                        "\"notes\": \"more-notes\","
                        "\"status\": \"completed\","
-                       "\"due\": \"2014-08-30T17:20:00.000001+00:00\","
-                       "\"completed\": \"2014-08-30T17:20:00.000001+00:00\","
+                       "\"due\": \"2014-08-30T17:20:00Z\","
+                       "\"completed\": \"2014-08-30T17:20:00Z\","
                        "\"deleted\": true,"
                        "\"hidden\": false"
                "}");
@@ -337,8 +337,8 @@ test_task_properties (void)
                        "\"title\": \"some-other-title\","
                        "\"notes\": \"more-notes\","
                        "\"status\": \"completed\","
-                       "\"due\": \"2014-08-30T17:20:00.000001+00:00\","
-                       "\"completed\": \"2014-08-30T17:20:00.000001+00:00\","
+                       "\"due\": \"2014-08-30T17:20:00Z\","
+                       "\"completed\": \"2014-08-30T17:20:00Z\","
                        "\"deleted\": false,"
                        "\"hidden\": false"
                "}");
@@ -501,14 +501,14 @@ test_task_parser_normal (void)
                        "\"id\": \"some-id\","
                        "\"etag\": \"some-etag\","
                        "\"title\": \"some-title \\\"with quotes\\\"\","
-                       "\"updated\": \"2014-08-30T19:40:00.000001+00:00\","
+                       "\"updated\": \"2014-08-30T19:40:00Z\","
                        "\"selfLink\": \"http://some-uri/\",";
                        "\"parent\": \"some-parent-id\","
                        "\"position\": \"some-position\","
                        "\"notes\": \"Some notes!\","
                        "\"status\": \"needsAction\","
-                       "\"due\": \"2014-08-30T20:00:00.000001+00:00\","
-                       "\"completed\": \"2014-08-30T20:10:05.000001+00:00\","
+                       "\"due\": \"2014-08-30T20:00:00Z\","
+                       "\"completed\": \"2014-08-30T20:10:05Z\","
                        "\"deleted\": false,"
                        "\"hidden\": true,"
                        /* Unhandled for the moment: */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]