Blame gdata/services/contacts/gdata-contacts-query.c

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) Philip Withnall 2009–2010 <philip@tecnocode.co.uk>
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-contacts-query
Packit 4b6dd7
 * @short_description: GData Contacts query object
Packit 4b6dd7
 * @stability: Stable
Packit 4b6dd7
 * @include: gdata/services/contacts/gdata-contacts-query.h
Packit 4b6dd7
 *
Packit 4b6dd7
 * #GDataContactsQuery represents a collection of query parameters specific to the Google Contacts 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 #GDataContactsQuery, see the 
Packit 4b6dd7
 * url="http://code.google.com/apis/contacts/docs/2.0/reference.html#Parameters">online documentation</ulink>.
Packit 4b6dd7
 *
Packit 4b6dd7
 * <example>
Packit 4b6dd7
 * 	<title>Querying for Contacts</title>
Packit 4b6dd7
 * 	<programlisting>
Packit 4b6dd7
 *	GDataContactsService *service;
Packit 4b6dd7
 *	gchar *group_id;
Packit 4b6dd7
 *	GDataContactsQuery *query;
Packit 4b6dd7
 *	GDataFeed *feed;
Packit 4b6dd7
 *	GList *i;
Packit 4b6dd7
 *	GError *error = NULL;
Packit 4b6dd7
 *
Packit 4b6dd7
 *	/* Create a service and return the group we're querying within. */
Packit 4b6dd7
 *	service = create_contacts_service ();
Packit 4b6dd7
 *	group_id = query_user_for_group (service);
Packit 4b6dd7
 *
Packit 4b6dd7
 *	/* Create the query to use. We're going to query for contacts which match the search term "John" within a given group,
Packit 4b6dd7
 *	 * including deleted contacts. The group is specified by its ID. */
Packit 4b6dd7
 *	query = gdata_contacts_query_new ("John");
Packit 4b6dd7
 *	gdata_contacts_query_set_show_deleted (query, TRUE);
Packit 4b6dd7
 *	gdata_contacts_query_set_group (query, group_id);
Packit 4b6dd7
 *
Packit 4b6dd7
 *	g_free (group_id);
Packit 4b6dd7
 *
Packit 4b6dd7
 *	/* Execute the query */
Packit 4b6dd7
 *	feed = gdata_contacts_service_query_contacts (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 contacts: %s", error->message);
Packit 4b6dd7
 *		g_error_free (error);
Packit 4b6dd7
 *		return;
Packit 4b6dd7
 *	}
Packit 4b6dd7
 *
Packit 4b6dd7
 *	/* Iterate through the returned contacts and do something with them */
Packit 4b6dd7
 *	for (i = gdata_feed_get_entries (feed); i != NULL; i = i->next) {
Packit 4b6dd7
 *		GDataContactsContact *contact = GDATA_CONTACTS_CONTACT (i->data);
Packit 4b6dd7
 *
Packit 4b6dd7
 *		/* Do something with the contact 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.2.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 "gdata-contacts-query.h"
Packit 4b6dd7
#include "gdata-query.h"
Packit 4b6dd7
#include "gdata-private.h"
Packit 4b6dd7
Packit 4b6dd7
static void gdata_contacts_query_finalize (GObject *object);
Packit 4b6dd7
static void gdata_contacts_query_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
Packit 4b6dd7
static void gdata_contacts_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 _GDataContactsQueryPrivate {
Packit 4b6dd7
	gchar *order_by; /* TODO: #defined values */
Packit 4b6dd7
	gboolean show_deleted;
Packit 4b6dd7
	gchar *sort_order; /* TODO: #defined values */
Packit 4b6dd7
	gchar *group;
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
enum {
Packit 4b6dd7
	PROP_ORDER_BY = 1,
Packit 4b6dd7
	PROP_SHOW_DELETED,
Packit 4b6dd7
	PROP_SORT_ORDER,
Packit 4b6dd7
	PROP_GROUP
Packit 4b6dd7
};
Packit 4b6dd7
Packit 4b6dd7
G_DEFINE_TYPE (GDataContactsQuery, gdata_contacts_query, GDATA_TYPE_QUERY)
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
gdata_contacts_query_class_init (GDataContactsQueryClass *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 (GDataContactsQueryPrivate));
Packit 4b6dd7
Packit 4b6dd7
	gobject_class->set_property = gdata_contacts_query_set_property;
Packit 4b6dd7
	gobject_class->get_property = gdata_contacts_query_get_property;
Packit 4b6dd7
	gobject_class->finalize = gdata_contacts_query_finalize;
Packit 4b6dd7
Packit 4b6dd7
	query_class->get_query_uri = get_query_uri;
Packit 4b6dd7
Packit 4b6dd7
	/**
Packit 4b6dd7
	 * GDataContactsQuery:order-by:
Packit 4b6dd7
	 *
Packit 4b6dd7
	 * Sorting criterion. The only supported value is <literal>lastmodified</literal>.
Packit 4b6dd7
	 *
Packit 4b6dd7
	 * Since: 0.2.0
Packit 4b6dd7
	 */
Packit 4b6dd7
	g_object_class_install_property (gobject_class, PROP_ORDER_BY,
Packit 4b6dd7
	                                 g_param_spec_string ("order-by",
Packit 4b6dd7
	                                                      "Order by", "Sorting criterion.",
Packit 4b6dd7
	                                                      NULL,
Packit 4b6dd7
	                                                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
Packit 4b6dd7
Packit 4b6dd7
	/**
Packit 4b6dd7
	 * GDataContactsQuery:show-deleted:
Packit 4b6dd7
	 *
Packit 4b6dd7
	 * Whether to include deleted contacts in the query feed. Deleted contacts return %TRUE
Packit 4b6dd7
	 * from gdata_contacts_contact_is_deleted(), and have no other information. They do not
Packit 4b6dd7
	 * normally appear in query results.
Packit 4b6dd7
	 *
Packit 4b6dd7
	 * Since: 0.2.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?", "Whether to include deleted contacts in the query feed.",
Packit 4b6dd7
	                                                       FALSE,
Packit 4b6dd7
	                                                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
Packit 4b6dd7
Packit 4b6dd7
	/**
Packit 4b6dd7
	 * GDataContactsQuery:sort-order:
Packit 4b6dd7
	 *
Packit 4b6dd7
	 * Sorting order direction. Can be either <literal>ascending</literal> or <literal>descending</literal>.
Packit 4b6dd7
	 *
Packit 4b6dd7
	 * Since: 0.2.0
Packit 4b6dd7
	 */
Packit 4b6dd7
	g_object_class_install_property (gobject_class, PROP_SORT_ORDER,
Packit 4b6dd7
	                                 g_param_spec_string ("sort-order",
Packit 4b6dd7
	                                                      "Sort order", "Sorting order direction.",
Packit 4b6dd7
	                                                      NULL,
Packit 4b6dd7
	                                                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
Packit 4b6dd7
Packit 4b6dd7
	/**
Packit 4b6dd7
	 * GDataContactsQuery:group:
Packit 4b6dd7
	 *
Packit 4b6dd7
	 * Constrains the results to only those belonging to the group specified. The value of this parameter
Packit 4b6dd7
	 * should be a group ID URI.
Packit 4b6dd7
	 *
Packit 4b6dd7
	 * Since: 0.2.0
Packit 4b6dd7
	 */
Packit 4b6dd7
	g_object_class_install_property (gobject_class, PROP_GROUP,
Packit 4b6dd7
	                                 g_param_spec_string ("group",
Packit 4b6dd7
	                                                      "Group", "Constrains the results to only those belonging to the group specified.",
Packit 4b6dd7
	                                                      NULL,
Packit 4b6dd7
	                                                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
gdata_contacts_query_init (GDataContactsQuery *self)
Packit 4b6dd7
{
Packit 4b6dd7
	self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GDATA_TYPE_CONTACTS_QUERY, GDataContactsQueryPrivate);
Packit 4b6dd7
Packit 4b6dd7
	/* https://developers.google.com/google-apps/contacts/v3/reference#contacts-query-parameters-reference */
Packit 4b6dd7
	_gdata_query_set_pagination_type (GDATA_QUERY (self),
Packit 4b6dd7
	                                  GDATA_QUERY_PAGINATION_INDEXED);
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
gdata_contacts_query_finalize (GObject *object)
Packit 4b6dd7
{
Packit 4b6dd7
	GDataContactsQueryPrivate *priv = GDATA_CONTACTS_QUERY (object)->priv;
Packit 4b6dd7
Packit 4b6dd7
	g_free (priv->order_by);
Packit 4b6dd7
	g_free (priv->sort_order);
Packit 4b6dd7
	g_free (priv->group);
Packit 4b6dd7
Packit 4b6dd7
	/* Chain up to the parent class */
Packit 4b6dd7
	G_OBJECT_CLASS (gdata_contacts_query_parent_class)->finalize (object);
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
static void
Packit 4b6dd7
gdata_contacts_query_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec)
Packit 4b6dd7
{
Packit 4b6dd7
	GDataContactsQueryPrivate *priv = GDATA_CONTACTS_QUERY (object)->priv;
Packit 4b6dd7
Packit 4b6dd7
	switch (property_id) {
Packit 4b6dd7
		case PROP_ORDER_BY:
Packit 4b6dd7
			g_value_set_string (value, priv->order_by);
Packit 4b6dd7
			break;
Packit 4b6dd7
		case PROP_SHOW_DELETED:
Packit 4b6dd7
			g_value_set_boolean (value, priv->show_deleted);
Packit 4b6dd7
			break;
Packit 4b6dd7
		case PROP_SORT_ORDER:
Packit 4b6dd7
			g_value_set_string (value, priv->sort_order);
Packit 4b6dd7
			break;
Packit 4b6dd7
		case PROP_GROUP:
Packit 4b6dd7
			g_value_set_string (value, priv->group);
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_contacts_query_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec)
Packit 4b6dd7
{
Packit 4b6dd7
	GDataContactsQuery *self = GDATA_CONTACTS_QUERY (object);
Packit 4b6dd7
Packit 4b6dd7
	switch (property_id) {
Packit 4b6dd7
		case PROP_ORDER_BY:
Packit 4b6dd7
			gdata_contacts_query_set_order_by (self, g_value_get_string (value));
Packit 4b6dd7
			break;
Packit 4b6dd7
		case PROP_SHOW_DELETED:
Packit 4b6dd7
			gdata_contacts_query_set_show_deleted (self, g_value_get_boolean (value));
Packit 4b6dd7
			break;
Packit 4b6dd7
		case PROP_SORT_ORDER:
Packit 4b6dd7
			gdata_contacts_query_set_sort_order (self, g_value_get_string (value));
Packit 4b6dd7
			break;
Packit 4b6dd7
		case PROP_GROUP:
Packit 4b6dd7
			gdata_contacts_query_set_group (self, g_value_get_string (value));
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
	GDataContactsQueryPrivate *priv = GDATA_CONTACTS_QUERY (self)->priv;
Packit 4b6dd7
Packit 4b6dd7
	#define APPEND_SEP g_string_append_c (query_uri, (*params_started == FALSE) ? '?' : '&';; *params_started = TRUE;
Packit 4b6dd7
Packit 4b6dd7
	/* Chain up to the parent class */
Packit 4b6dd7
	GDATA_QUERY_CLASS (gdata_contacts_query_parent_class)->get_query_uri (self, feed_uri, query_uri, params_started);
Packit 4b6dd7
Packit 4b6dd7
	if (priv->order_by != NULL) {
Packit 4b6dd7
		APPEND_SEP
Packit 4b6dd7
		g_string_append (query_uri, "orderby=");
Packit 4b6dd7
		g_string_append_uri_escaped (query_uri, priv->order_by, NULL, FALSE);
Packit 4b6dd7
	}
Packit 4b6dd7
Packit 4b6dd7
	APPEND_SEP
Packit 4b6dd7
	if (priv->show_deleted == TRUE)
Packit 4b6dd7
		g_string_append (query_uri, "showdeleted=true");
Packit 4b6dd7
	else
Packit 4b6dd7
		g_string_append (query_uri, "showdeleted=false");
Packit 4b6dd7
Packit 4b6dd7
	if (priv->sort_order != NULL) {
Packit 4b6dd7
		APPEND_SEP
Packit 4b6dd7
		g_string_append (query_uri, "sortorder=");
Packit 4b6dd7
		g_string_append_uri_escaped (query_uri, priv->sort_order, NULL, FALSE);
Packit 4b6dd7
	}
Packit 4b6dd7
Packit 4b6dd7
	if (priv->group != NULL) {
Packit 4b6dd7
		APPEND_SEP
Packit 4b6dd7
		g_string_append (query_uri, "group=");
Packit 4b6dd7
		g_string_append_uri_escaped (query_uri, priv->group, NULL, FALSE);
Packit 4b6dd7
	}
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
/**
Packit 4b6dd7
 * gdata_contacts_query_new:
Packit 4b6dd7
 * @q: (allow-none): a query string, or %NULL
Packit 4b6dd7
 *
Packit 4b6dd7
 * Creates a new #GDataContactsQuery with its #GDataQuery:q property set to @q.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Return value: a new #GDataContactsQuery
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
GDataContactsQuery *
Packit 4b6dd7
gdata_contacts_query_new (const gchar *q)
Packit 4b6dd7
{
Packit 4b6dd7
	return g_object_new (GDATA_TYPE_CONTACTS_QUERY, "q", q, NULL);
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
/**
Packit 4b6dd7
 * gdata_contacts_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 #GDataContactsQuery 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 #GDataContactsQuery
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
GDataContactsQuery *
Packit 4b6dd7
gdata_contacts_query_new_with_limits (const gchar *q, guint start_index, guint max_results)
Packit 4b6dd7
{
Packit 4b6dd7
	return g_object_new (GDATA_TYPE_CONTACTS_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_contacts_query_get_order_by:
Packit 4b6dd7
 * @self: a #GDataContactsQuery
Packit 4b6dd7
 *
Packit 4b6dd7
 * Gets the #GDataContactsQuery:order-by property.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Return value: the order by property, or %NULL if it is unset
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
const gchar *
Packit 4b6dd7
gdata_contacts_query_get_order_by (GDataContactsQuery *self)
Packit 4b6dd7
{
Packit 4b6dd7
	g_return_val_if_fail (GDATA_IS_CONTACTS_QUERY (self), NULL);
Packit 4b6dd7
	return self->priv->order_by;
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
/**
Packit 4b6dd7
 * gdata_contacts_query_set_order_by:
Packit 4b6dd7
 * @self: a #GDataContactsQuery
Packit 4b6dd7
 * @order_by: (allow-none): a new order by string, or %NULL
Packit 4b6dd7
 *
Packit 4b6dd7
 * Sets the #GDataContactsQuery:order-by property of the #GDataContactsQuery to the new order by string, @order_by.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Set @order_by to %NULL to unset the property in the query URI.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
void
Packit 4b6dd7
gdata_contacts_query_set_order_by (GDataContactsQuery *self, const gchar *order_by)
Packit 4b6dd7
{
Packit 4b6dd7
	g_return_if_fail (GDATA_IS_CONTACTS_QUERY (self));
Packit 4b6dd7
Packit 4b6dd7
	g_free (self->priv->order_by);
Packit 4b6dd7
	self->priv->order_by = g_strdup (order_by);
Packit 4b6dd7
	g_object_notify (G_OBJECT (self), "order-by");
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_contacts_query_show_deleted:
Packit 4b6dd7
 * @self: a #GDataContactsQuery
Packit 4b6dd7
 *
Packit 4b6dd7
 * Gets the #GDataContactsQuery:show-deleted property.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Return value: %TRUE if deleted contacts should be shown, %FALSE otherwise
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
gboolean
Packit 4b6dd7
gdata_contacts_query_show_deleted (GDataContactsQuery *self)
Packit 4b6dd7
{
Packit 4b6dd7
	g_return_val_if_fail (GDATA_IS_CONTACTS_QUERY (self), FALSE);
Packit 4b6dd7
	return self->priv->show_deleted;
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
/**
Packit 4b6dd7
 * gdata_contacts_query_set_show_deleted:
Packit 4b6dd7
 * @self: a #GDataContactsQuery
Packit 4b6dd7
 * @show_deleted: %TRUE to show deleted contacts, %FALSE otherwise
Packit 4b6dd7
 *
Packit 4b6dd7
 * Sets the #GDataContactsQuery:show-deleted property of the #GDataContactsQuery.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
void
Packit 4b6dd7
gdata_contacts_query_set_show_deleted (GDataContactsQuery *self, gboolean show_deleted)
Packit 4b6dd7
{
Packit 4b6dd7
	g_return_if_fail (GDATA_IS_CONTACTS_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_contacts_query_get_sort_order:
Packit 4b6dd7
 * @self: a #GDataContactsQuery
Packit 4b6dd7
 *
Packit 4b6dd7
 * Gets the #GDataContactsQuery:sort-order property.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Return value: the sort order property, or %NULL if it is unset
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
const gchar *
Packit 4b6dd7
gdata_contacts_query_get_sort_order (GDataContactsQuery *self)
Packit 4b6dd7
{
Packit 4b6dd7
	g_return_val_if_fail (GDATA_IS_CONTACTS_QUERY (self), NULL);
Packit 4b6dd7
	return self->priv->sort_order;
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
/**
Packit 4b6dd7
 * gdata_contacts_query_set_sort_order:
Packit 4b6dd7
 * @self: a #GDataContactsQuery
Packit 4b6dd7
 * @sort_order: (allow-none): a new sort order string, or %NULL
Packit 4b6dd7
 *
Packit 4b6dd7
 * Sets the #GDataContactsQuery:sort-order property of the #GDataContactsQuery to the new sort order string, @sort_order.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Set @sort_order to %NULL to unset the property in the query URI.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
void
Packit 4b6dd7
gdata_contacts_query_set_sort_order (GDataContactsQuery *self, const gchar *sort_order)
Packit 4b6dd7
{
Packit 4b6dd7
	g_return_if_fail (GDATA_IS_CONTACTS_QUERY (self));
Packit 4b6dd7
Packit 4b6dd7
	g_free (self->priv->sort_order);
Packit 4b6dd7
	self->priv->sort_order = g_strdup (sort_order);
Packit 4b6dd7
	g_object_notify (G_OBJECT (self), "sort-order");
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_contacts_query_get_group:
Packit 4b6dd7
 * @self: a #GDataContactsQuery
Packit 4b6dd7
 *
Packit 4b6dd7
 * Gets the #GDataContactsQuery:group property.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Return value: the group property, or %NULL if it is unset
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
const gchar *
Packit 4b6dd7
gdata_contacts_query_get_group (GDataContactsQuery *self)
Packit 4b6dd7
{
Packit 4b6dd7
	g_return_val_if_fail (GDATA_IS_CONTACTS_QUERY (self), NULL);
Packit 4b6dd7
	return self->priv->group;
Packit 4b6dd7
}
Packit 4b6dd7
Packit 4b6dd7
/**
Packit 4b6dd7
 * gdata_contacts_query_set_group:
Packit 4b6dd7
 * @self: a #GDataContactsQuery
Packit 4b6dd7
 * @group: (allow-none): a new group ID URI, or %NULL
Packit 4b6dd7
 *
Packit 4b6dd7
 * Sets the #GDataContactsQuery:group property of the #GDataContactsQuery to the new group ID URI, @group.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Set @group to %NULL to unset the property in the query URI.
Packit 4b6dd7
 *
Packit 4b6dd7
 * Since: 0.2.0
Packit 4b6dd7
 */
Packit 4b6dd7
void
Packit 4b6dd7
gdata_contacts_query_set_group (GDataContactsQuery *self, const gchar *group)
Packit 4b6dd7
{
Packit 4b6dd7
	g_return_if_fail (GDATA_IS_CONTACTS_QUERY (self));
Packit 4b6dd7
Packit 4b6dd7
	g_free (self->priv->group);
Packit 4b6dd7
	self->priv->group = g_strdup (group);
Packit 4b6dd7
	g_object_notify (G_OBJECT (self), "group");
Packit 4b6dd7
Packit 4b6dd7
	/* Our current ETag will no longer be relevant */
Packit 4b6dd7
	gdata_query_set_etag (GDATA_QUERY (self), NULL);
Packit 4b6dd7
}