|
Packit |
4b6dd7 |
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
|
|
Packit |
4b6dd7 |
/*
|
|
Packit |
4b6dd7 |
* GData Client
|
|
Packit |
4b6dd7 |
* Copyright (C) Thibault Saunier 2009 <saunierthibault@gmail.com>
|
|
Packit |
4b6dd7 |
* Copyright (C) Philip Withnall 2010 <philip@tecnocode.co.uk>
|
|
Packit |
4b6dd7 |
* Copyright (C) Red Hat, Inc. 2015
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* GData Client is free software; you can redistribute it and/or
|
|
Packit |
4b6dd7 |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit |
4b6dd7 |
* License as published by the Free Software Foundation; either
|
|
Packit |
4b6dd7 |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* GData Client is distributed in the hope that it will be useful,
|
|
Packit |
4b6dd7 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
4b6dd7 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
4b6dd7 |
* Lesser General Public License for more details.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
4b6dd7 |
* License along with GData Client. If not, see <http://www.gnu.org/licenses/>.
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* SECTION:gdata-documents-query
|
|
Packit |
4b6dd7 |
* @short_description: GData Documents query object
|
|
Packit |
4b6dd7 |
* @stability: Stable
|
|
Packit |
4b6dd7 |
* @include: gdata/services/documents/gdata-documents-query.h
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* #GDataDocumentsQuery represents a collection of query parameters specific to the Google Documents service, which go above and beyond
|
|
Packit |
4b6dd7 |
* those catered for by #GDataQuery.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more information on the custom GData query parameters supported by #GDataDocumentsQuery, see the
|
|
Packit |
4b6dd7 |
* url="https://developers.google.com/google-apps/documents-list/#searching_for_documents_and_files">online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* <example>
|
|
Packit |
4b6dd7 |
* <title>Querying for Documents</title>
|
|
Packit |
4b6dd7 |
* <programlisting>
|
|
Packit |
4b6dd7 |
* GDataDocumentsService *service;
|
|
Packit |
4b6dd7 |
* GDataDocumentsQuery *query;
|
|
Packit |
4b6dd7 |
* GDataFeed *feed;
|
|
Packit |
4b6dd7 |
* GTimeVal current_time;
|
|
Packit |
4b6dd7 |
* GList *i;
|
|
Packit |
4b6dd7 |
* GError *error = NULL;
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Create a service */
|
|
Packit |
4b6dd7 |
* service = create_documents_service ();
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Create the query to use. We're going to query for the last 10 documents modified by example@gmail.com in the past week, including
|
|
Packit |
4b6dd7 |
* * deleted documents. */
|
|
Packit |
4b6dd7 |
* query = gdata_documents_query_new_with_limits (NULL, 0, 10);
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* gdata_documents_query_add_collaborator (query, "example@gmail.com");
|
|
Packit |
4b6dd7 |
* gdata_documents_query_set_show_deleted (query, TRUE);
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* g_get_current_time (¤t_time);
|
|
Packit |
4b6dd7 |
* gdata_query_set_updated_min (GDATA_QUERY (query), current_time.tv_sec - 7 * 24 * 60 * 60);
|
|
Packit |
4b6dd7 |
* gdata_query_set_updated_max (GDATA_QUERY (query), current_time.tv_sec);
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Execute the query */
|
|
Packit |
4b6dd7 |
* feed = gdata_documents_service_query_documents (service, query, NULL, NULL, NULL, &error);
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* g_object_unref (query);
|
|
Packit |
4b6dd7 |
* g_object_unref (service);
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* if (error != NULL) {
|
|
Packit |
4b6dd7 |
* g_error ("Error querying for documents: %s", error->message);
|
|
Packit |
4b6dd7 |
* g_error_free (error);
|
|
Packit |
4b6dd7 |
* return;
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Iterate through the returned documents and do something with them */
|
|
Packit |
4b6dd7 |
* for (i = gdata_feed_get_entries (feed); i != NULL; i = i->next) {
|
|
Packit |
4b6dd7 |
* GDataDocumentsDocument *document = GDATA_DOCUMENTS_DOCUMENT (i->data);
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* /* Do something with the document here, such as insert it into a UI */
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* g_object_unref (feed);
|
|
Packit |
4b6dd7 |
* </programlisting>
|
|
Packit |
4b6dd7 |
* </example>
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#include <config.h>
|
|
Packit |
4b6dd7 |
#include <glib.h>
|
|
Packit |
4b6dd7 |
#include <glib/gi18n-lib.h>
|
|
Packit |
4b6dd7 |
#include <string.h>
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#include "gd/gdata-gd-email-address.h"
|
|
Packit |
4b6dd7 |
#include "gdata-documents-query.h"
|
|
Packit |
4b6dd7 |
#include "gdata-private.h"
|
|
Packit |
4b6dd7 |
#include "gdata-query.h"
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#include <gdata/services/documents/gdata-documents-spreadsheet.h>
|
|
Packit |
4b6dd7 |
#include <gdata/services/documents/gdata-documents-presentation.h>
|
|
Packit |
4b6dd7 |
#include <gdata/services/documents/gdata-documents-text.h>
|
|
Packit |
4b6dd7 |
#include <gdata/services/documents/gdata-documents-folder.h>
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void gdata_documents_query_dispose (GObject *object);
|
|
Packit |
4b6dd7 |
static void gdata_documents_query_finalize (GObject *object);
|
|
Packit |
4b6dd7 |
static void gdata_documents_query_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
|
|
Packit |
4b6dd7 |
static void gdata_documents_query_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
|
|
Packit |
4b6dd7 |
static void get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboolean *params_started);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
struct _GDataDocumentsQueryPrivate {
|
|
Packit |
4b6dd7 |
gboolean show_deleted;
|
|
Packit |
4b6dd7 |
gboolean show_folders;
|
|
Packit |
4b6dd7 |
gboolean exact_title;
|
|
Packit |
4b6dd7 |
gchar *folder_id;
|
|
Packit |
4b6dd7 |
gchar *title;
|
|
Packit |
4b6dd7 |
GList *collaborator_addresses; /* GDataGDEmailAddress */
|
|
Packit |
4b6dd7 |
GList *reader_addresses; /* GDataGDEmailAddress */
|
|
Packit |
4b6dd7 |
};
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
enum {
|
|
Packit |
4b6dd7 |
PROP_SHOW_DELETED = 1,
|
|
Packit |
4b6dd7 |
PROP_SHOW_FOLDERS,
|
|
Packit |
4b6dd7 |
PROP_EXACT_TITLE,
|
|
Packit |
4b6dd7 |
PROP_FOLDER_ID,
|
|
Packit |
4b6dd7 |
PROP_TITLE
|
|
Packit |
4b6dd7 |
};
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_DEFINE_TYPE (GDataDocumentsQuery, gdata_documents_query, GDATA_TYPE_QUERY)
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_documents_query_class_init (GDataDocumentsQueryClass *klass)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
|
Packit |
4b6dd7 |
GDataQueryClass *query_class = GDATA_QUERY_CLASS (klass);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_type_class_add_private (klass, sizeof (GDataDocumentsQueryPrivate));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gobject_class->get_property = gdata_documents_query_get_property;
|
|
Packit |
4b6dd7 |
gobject_class->set_property = gdata_documents_query_set_property;
|
|
Packit |
4b6dd7 |
gobject_class->dispose = gdata_documents_query_dispose;
|
|
Packit |
4b6dd7 |
gobject_class->finalize = gdata_documents_query_finalize;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
query_class->get_query_uri = get_query_uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataDocumentsQuery:show-deleted:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* A shortcut to request all documents that have been deleted.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_SHOW_DELETED,
|
|
Packit |
4b6dd7 |
g_param_spec_boolean ("show-deleted",
|
|
Packit |
4b6dd7 |
"Show deleted?", "A shortcut to request all documents that have been deleted.",
|
|
Packit |
4b6dd7 |
FALSE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataDocumentsQuery:show-folders:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Specifies if the request also returns folders.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_SHOW_FOLDERS,
|
|
Packit |
4b6dd7 |
g_param_spec_boolean ("show-folders",
|
|
Packit |
4b6dd7 |
"Show folders?", "Specifies if the request also returns folders.",
|
|
Packit |
4b6dd7 |
FALSE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataDocumentsQuery:exact-title:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Specifies whether the query should search for an exact title match for the #GDataDocumentsQuery:title parameter.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_EXACT_TITLE,
|
|
Packit |
4b6dd7 |
g_param_spec_boolean ("exact-title",
|
|
Packit |
4b6dd7 |
"Exact title?", "Specifies whether the query should search for an exact title match.",
|
|
Packit |
4b6dd7 |
FALSE,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataDocumentsQuery:folder-id:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Specifies the ID of the folder in which to search.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_FOLDER_ID,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("folder-id",
|
|
Packit |
4b6dd7 |
"Folder ID", "Specifies the ID of the folder in which to search.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* GDataDocumentsQuery:title:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* A title (or title fragment) to be searched for. If #GDataDocumentsQuery:exact-title is %TRUE, an exact
|
|
Packit |
4b6dd7 |
* title match will be searched for, otherwise substring matches will also be returned.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
g_object_class_install_property (gobject_class, PROP_TITLE,
|
|
Packit |
4b6dd7 |
g_param_spec_string ("title",
|
|
Packit |
4b6dd7 |
"Title", "A title (or title fragment) to be searched for.",
|
|
Packit |
4b6dd7 |
NULL,
|
|
Packit |
4b6dd7 |
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_documents_query_init (GDataDocumentsQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GDATA_TYPE_DOCUMENTS_QUERY, GDataDocumentsQueryPrivate);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* https://developers.google.com/drive/v3/reference/files/list#q */
|
|
Packit |
4b6dd7 |
_gdata_query_set_pagination_type (GDATA_QUERY (self),
|
|
Packit |
4b6dd7 |
GDATA_QUERY_PAGINATION_TOKENS);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_documents_query_dispose (GObject *object)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GList *i;
|
|
Packit |
4b6dd7 |
GDataDocumentsQueryPrivate *priv = GDATA_DOCUMENTS_QUERY (object)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
for (i = priv->collaborator_addresses; i != NULL; i = i->next)
|
|
Packit |
4b6dd7 |
g_object_unref (i->data);
|
|
Packit |
4b6dd7 |
g_list_free (priv->collaborator_addresses);
|
|
Packit |
4b6dd7 |
priv->collaborator_addresses = NULL;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
for (i = priv->reader_addresses; i != NULL; i = i->next)
|
|
Packit |
4b6dd7 |
g_object_unref (i->data);
|
|
Packit |
4b6dd7 |
g_list_free (priv->reader_addresses);
|
|
Packit |
4b6dd7 |
priv->reader_addresses = NULL;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_OBJECT_CLASS (gdata_documents_query_parent_class)->dispose (object);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_documents_query_finalize (GObject *object)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataDocumentsQueryPrivate *priv = GDATA_DOCUMENTS_QUERY (object)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_free (priv->folder_id);
|
|
Packit |
4b6dd7 |
g_free (priv->title);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
G_OBJECT_CLASS (gdata_documents_query_parent_class)->finalize (object);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_documents_query_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataDocumentsQueryPrivate *priv = GDATA_DOCUMENTS_QUERY (object)->priv;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
switch (property_id) {
|
|
Packit |
4b6dd7 |
case PROP_SHOW_DELETED:
|
|
Packit |
4b6dd7 |
g_value_set_boolean (value, priv->show_deleted);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_SHOW_FOLDERS:
|
|
Packit |
4b6dd7 |
g_value_set_boolean (value, priv->show_folders);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_FOLDER_ID:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->folder_id);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_EXACT_TITLE:
|
|
Packit |
4b6dd7 |
g_value_set_boolean (value, priv->exact_title);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_TITLE:
|
|
Packit |
4b6dd7 |
g_value_set_string (value, priv->title);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
default:
|
|
Packit |
4b6dd7 |
/* We don't have any other property... */
|
|
Packit |
4b6dd7 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataDocumentsQuery *self = GDATA_DOCUMENTS_QUERY (object);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
switch (property_id) {
|
|
Packit |
4b6dd7 |
case PROP_SHOW_DELETED:
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_show_deleted (self, g_value_get_boolean (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_SHOW_FOLDERS:
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_show_folders (self, g_value_get_boolean (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_FOLDER_ID:
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_folder_id (self, g_value_get_string (value));
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_EXACT_TITLE:
|
|
Packit |
4b6dd7 |
self->priv->exact_title = g_value_get_boolean (value);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
case PROP_TITLE:
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_title (self, g_value_get_string (value), TRUE);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
default:
|
|
Packit |
4b6dd7 |
/* We don't have any other property... */
|
|
Packit |
4b6dd7 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
4b6dd7 |
break;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
get_query_uri (GDataQuery *self, const gchar *feed_uri, GString *query_uri, gboolean *params_started)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataDocumentsQueryPrivate *priv = GDATA_DOCUMENTS_QUERY (self)->priv;
|
|
Packit |
4b6dd7 |
guint max_results;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
#define APPEND_SEP g_string_append_c (query_uri, (*params_started == FALSE) ? '?' : '&';; *params_started = TRUE;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->folder_id != NULL) {
|
|
Packit |
4b6dd7 |
g_string_append (query_uri, "/folder%3A");
|
|
Packit |
4b6dd7 |
g_string_append_uri_escaped (query_uri, priv->folder_id, NULL, FALSE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Search parameters: https://developers.google.com/drive/web/search-parameters */
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
_gdata_query_clear_q_internal (self);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->collaborator_addresses != NULL) {
|
|
Packit |
4b6dd7 |
GList *i;
|
|
Packit |
4b6dd7 |
GString *str;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
str = g_string_new (NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
for (i = priv->collaborator_addresses; i != NULL; i = i->next) {
|
|
Packit |
4b6dd7 |
GDataGDEmailAddress *email_address = GDATA_GD_EMAIL_ADDRESS (i->data);
|
|
Packit |
4b6dd7 |
const gchar *address;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
address = gdata_gd_email_address_get_address (email_address);
|
|
Packit |
4b6dd7 |
g_string_append_printf (str, "'%s' in writers", address);
|
|
Packit |
4b6dd7 |
if (i->next != NULL)
|
|
Packit |
4b6dd7 |
g_string_append (str, " or ");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
_gdata_query_add_q_internal (self, str->str);
|
|
Packit |
4b6dd7 |
g_string_free (str, TRUE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->reader_addresses != NULL) {
|
|
Packit |
4b6dd7 |
GList *i;
|
|
Packit |
4b6dd7 |
GString *str;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
str = g_string_new (NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
for (i = priv->reader_addresses; i != NULL; i = i->next) {
|
|
Packit |
4b6dd7 |
GDataGDEmailAddress *email_address = GDATA_GD_EMAIL_ADDRESS (i->data);
|
|
Packit |
4b6dd7 |
const gchar *address;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
address = gdata_gd_email_address_get_address (email_address);
|
|
Packit |
4b6dd7 |
g_string_append_printf (str, "'%s' in readers", address);
|
|
Packit |
4b6dd7 |
if (i->next != NULL)
|
|
Packit |
4b6dd7 |
g_string_append (str, " or ");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
_gdata_query_add_q_internal (self, str->str);
|
|
Packit |
4b6dd7 |
g_string_free (str, TRUE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->show_deleted == TRUE)
|
|
Packit |
4b6dd7 |
_gdata_query_add_q_internal (self, "trashed=true");
|
|
Packit |
4b6dd7 |
else
|
|
Packit |
4b6dd7 |
_gdata_query_add_q_internal (self, "trashed=false");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->show_folders == FALSE)
|
|
Packit |
4b6dd7 |
_gdata_query_add_q_internal (self, "mimeType!='application/vnd.google-apps.folder'");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (priv->title != NULL) {
|
|
Packit |
4b6dd7 |
GString *title_query;
|
|
Packit |
4b6dd7 |
const gchar *ptr, *ptr_end;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
title_query = g_string_new ("title");
|
|
Packit |
4b6dd7 |
if (priv->exact_title) {
|
|
Packit |
4b6dd7 |
g_string_append_c (title_query, '=');
|
|
Packit |
4b6dd7 |
} else {
|
|
Packit |
4b6dd7 |
g_string_append (title_query, " contains ");
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
g_string_append_c (title_query, '\'');
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
for (ptr = priv->title; ptr != NULL; ptr = ptr_end) {
|
|
Packit |
4b6dd7 |
/* Escape any "'" and "\" found in the title with a "\" */
|
|
Packit |
4b6dd7 |
ptr_end = strpbrk (ptr, "\'\\");
|
|
Packit |
4b6dd7 |
if (ptr_end == NULL) {
|
|
Packit |
4b6dd7 |
g_string_append (title_query, ptr);
|
|
Packit |
4b6dd7 |
} else {
|
|
Packit |
4b6dd7 |
g_string_append_len (title_query, ptr, ptr_end - ptr);
|
|
Packit |
4b6dd7 |
g_string_append_c (title_query, '\\');
|
|
Packit |
4b6dd7 |
g_string_append_c (title_query, *ptr_end);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_string_append_c (title_query, '\'');
|
|
Packit |
4b6dd7 |
_gdata_query_add_q_internal (self, title_query->str);
|
|
Packit |
4b6dd7 |
g_string_free (title_query, TRUE);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Chain up to the parent class */
|
|
Packit |
4b6dd7 |
GDATA_QUERY_CLASS (gdata_documents_query_parent_class)->get_query_uri (self, feed_uri, query_uri, params_started);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* https://developers.google.com/drive/v2/reference/files/list */
|
|
Packit |
4b6dd7 |
max_results = gdata_query_get_max_results (self);
|
|
Packit |
4b6dd7 |
if (max_results > 0) {
|
|
Packit |
4b6dd7 |
APPEND_SEP
|
|
Packit |
4b6dd7 |
max_results = max_results > 1000 ? 1000 : max_results;
|
|
Packit |
4b6dd7 |
g_string_append_printf (query_uri, "maxResults=%u", max_results);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_new:
|
|
Packit |
4b6dd7 |
* @q: (allow-none): a query string, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Creates a new #GDataDocumentsQuery with its #GDataQuery:q property set to @q.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: a new #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataDocumentsQuery *
|
|
Packit |
4b6dd7 |
gdata_documents_query_new (const gchar *q)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
return g_object_new (GDATA_TYPE_DOCUMENTS_QUERY, "q", q, NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_new_with_limits:
|
|
Packit |
4b6dd7 |
* @q: (allow-none): a query string, or %NULL
|
|
Packit |
4b6dd7 |
* @start_index: a one-based start index for the results, or 0
|
|
Packit |
4b6dd7 |
* @max_results: the maximum number of results to return, or 0
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Creates a new #GDataDocumentsQuery with its #GDataQuery:q property set to @q, and the limits @start_index and @max_results
|
|
Packit |
4b6dd7 |
* applied.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: a new #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataDocumentsQuery *
|
|
Packit |
4b6dd7 |
gdata_documents_query_new_with_limits (const gchar *q, guint start_index, guint max_results)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
return g_object_new (GDATA_TYPE_DOCUMENTS_QUERY,
|
|
Packit |
4b6dd7 |
"q", q,
|
|
Packit |
4b6dd7 |
"start-index", start_index,
|
|
Packit |
4b6dd7 |
"max-results", max_results,
|
|
Packit |
4b6dd7 |
NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_show_deleted:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataDocumentsQuery:show_deleted property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: %TRUE if the request should return deleted entries, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gboolean
|
|
Packit |
4b6dd7 |
gdata_documents_query_show_deleted (GDataDocumentsQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_DOCUMENTS_QUERY (self), FALSE);
|
|
Packit |
4b6dd7 |
return self->priv->show_deleted;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_set_show_deleted:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
* @show_deleted: %TRUE if the request should return deleted entries, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataDocumentsQuery:show_deleted property to @show_deleted.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_show_deleted (GDataDocumentsQuery *self, gboolean show_deleted)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_DOCUMENTS_QUERY (self));
|
|
Packit |
4b6dd7 |
self->priv->show_deleted = show_deleted;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "show-deleted");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_show_folders:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataDocumentsQuery:show-folders property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: %TRUE if the request should return folders, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gboolean
|
|
Packit |
4b6dd7 |
gdata_documents_query_show_folders (GDataDocumentsQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_DOCUMENTS_QUERY (self), FALSE);
|
|
Packit |
4b6dd7 |
return self->priv->show_folders;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_set_show_folders:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
* @show_folders: %TRUE if the request should return folders, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataDocumentsQuery:show-folders property to show_folders.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_show_folders (GDataDocumentsQuery *self, gboolean show_folders)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_DOCUMENTS_QUERY (self));
|
|
Packit |
4b6dd7 |
self->priv->show_folders = show_folders;
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "show-folders");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_get_folder_id:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataDocumentsQuery:folder-id property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the ID of the folder to be queried, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_documents_query_get_folder_id (GDataDocumentsQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_DOCUMENTS_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->folder_id;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_set_folder_id:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
* @folder_id: (allow-none): the ID of the folder to be queried, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataDocumentsQuery:folder-id property to @folder_id.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @folder_id to %NULL to unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_folder_id (GDataDocumentsQuery *self, const gchar *folder_id)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_DOCUMENTS_QUERY (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_free (self->priv->folder_id);
|
|
Packit |
4b6dd7 |
self->priv->folder_id = g_strdup (folder_id);
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "folder-id");
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_get_title:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataDocumentsQuery:title property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: the title (or title fragment) being queried for, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
const gchar *
|
|
Packit |
4b6dd7 |
gdata_documents_query_get_title (GDataDocumentsQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_DOCUMENTS_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->title;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_get_exact_title:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets the #GDataDocumentsQuery:exact-title property.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: %TRUE if the query matches the exact title of documents with #GDataDocumentsQuery:title, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gboolean
|
|
Packit |
4b6dd7 |
gdata_documents_query_get_exact_title (GDataDocumentsQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_DOCUMENTS_QUERY (self), FALSE);
|
|
Packit |
4b6dd7 |
return self->priv->exact_title;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_set_title:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
* @title: (allow-none): the title (or title fragment) to query for, or %NULL
|
|
Packit |
4b6dd7 |
* @exact_title: %TRUE if the query should match the exact @title, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Sets the #GDataDocumentsQuery:title property to @title.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Set @title to %NULL to unset the property in the query URI.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_documents_query_set_title (GDataDocumentsQuery *self, const gchar *title, gboolean exact_title)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_DOCUMENTS_QUERY (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_free (self->priv->title);
|
|
Packit |
4b6dd7 |
self->priv->title = g_strdup (title);
|
|
Packit |
4b6dd7 |
self->priv->exact_title = exact_title;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_object_freeze_notify (G_OBJECT (self));
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "exact-title");
|
|
Packit |
4b6dd7 |
g_object_notify (G_OBJECT (self), "title");
|
|
Packit |
4b6dd7 |
g_object_thaw_notify (G_OBJECT (self));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_get_collaborator_addresses:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets a list of #GDataGDEmailAddresses of the document collaborators whose documents will be queried.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (element-type GData.GDEmailAddress) (transfer none): a list of #GDataGDEmailAddresses of the collaborators concerned by the
|
|
Packit |
4b6dd7 |
* query, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GList *
|
|
Packit |
4b6dd7 |
gdata_documents_query_get_collaborator_addresses (GDataDocumentsQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_DOCUMENTS_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->collaborator_addresses;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_get_reader_addresses:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Gets a list of #GDataGDEmailAddresses of the document readers whose documents will be queried.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (element-type GData.GDEmailAddress) (transfer none): a list of #GDataGDEmailAddresses of the readers concerned by the query,
|
|
Packit |
4b6dd7 |
* or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GList *
|
|
Packit |
4b6dd7 |
gdata_documents_query_get_reader_addresses (GDataDocumentsQuery *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_DOCUMENTS_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
return self->priv->reader_addresses;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_add_reader:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
* @email_address: the e-mail address of the reader to add
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Add @email_address as a #GDataGDEmailAddress to the list of readers, the documents readable by whom will be queried.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_documents_query_add_reader (GDataDocumentsQuery *self, const gchar *email_address)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataGDEmailAddress *address;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_DOCUMENTS_QUERY (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (email_address != NULL && *email_address != '\0');
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
address = gdata_gd_email_address_new (email_address, "reader", NULL, FALSE);
|
|
Packit |
4b6dd7 |
self->priv->reader_addresses = g_list_append (self->priv->reader_addresses, address);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_documents_query_add_collaborator:
|
|
Packit |
4b6dd7 |
* @self: a #GDataDocumentsQuery
|
|
Packit |
4b6dd7 |
* @email_address: the e-mail address of the collaborator to add
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Add @email_address as a #GDataGDEmailAddress to the list of collaborators whose edited documents will be queried.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.4.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_documents_query_add_collaborator (GDataDocumentsQuery *self, const gchar *email_address)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataGDEmailAddress *address;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_DOCUMENTS_QUERY (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (email_address != NULL && *email_address != '\0');
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
address = gdata_gd_email_address_new (email_address, "collaborator", NULL, FALSE);
|
|
Packit |
4b6dd7 |
self->priv->collaborator_addresses = g_list_append (self->priv->collaborator_addresses, address);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Our current ETag will no longer be relevant */
|
|
Packit |
4b6dd7 |
gdata_query_set_etag (GDATA_QUERY (self), NULL);
|
|
Packit |
4b6dd7 |
}
|