|
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) Peteris Krisjanis 2013 <pecisk@gmail.com>
|
|
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-tasks-service
|
|
Packit |
4b6dd7 |
* @short_description: GData Tasks service object
|
|
Packit |
4b6dd7 |
* @stability: Stable
|
|
Packit |
4b6dd7 |
* @include: gdata/services/tasks/gdata-tasks-service.h
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* #GDataTasksService is a subclass of #GDataService for communicating with the API of Google Tasks. It supports querying
|
|
Packit |
4b6dd7 |
* for, inserting, editing and deleting tasks from tasklists, as well as operations on the tasklists themselves.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details of Google Tasks API, see the <ulink type="http" url="https://developers.google.com/google-apps/tasks/v1/reference/">
|
|
Packit |
4b6dd7 |
* online documentation</ulink>.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.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-tasks-service.h"
|
|
Packit |
4b6dd7 |
#include "gdata-service.h"
|
|
Packit |
4b6dd7 |
#include "gdata-private.h"
|
|
Packit |
4b6dd7 |
#include "gdata-query.h"
|
|
Packit |
4b6dd7 |
#include "gdata-feed.h"
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Standards reference here: https://developers.google.com/google-apps/tasks/v1/reference/ */
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void parse_error_response (GDataService *self,
|
|
Packit |
4b6dd7 |
GDataOperationType operation_type,
|
|
Packit |
4b6dd7 |
guint status, const gchar *reason_phrase,
|
|
Packit |
4b6dd7 |
const gchar *response_body, gint length,
|
|
Packit |
4b6dd7 |
GError **error);
|
|
Packit |
4b6dd7 |
static GList *get_authorization_domains (void);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
_GDATA_DEFINE_AUTHORIZATION_DOMAIN (tasks, "tasks", "https://www.googleapis.com/auth/tasks")
|
|
Packit |
4b6dd7 |
G_DEFINE_TYPE (GDataTasksService, gdata_tasks_service, GDATA_TYPE_SERVICE)
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_class_init (GDataTasksServiceClass *klass)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataServiceClass *service_class = GDATA_SERVICE_CLASS (klass);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
service_class->feed_type = GDATA_TYPE_FEED;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
service_class->parse_error_response = parse_error_response;
|
|
Packit |
4b6dd7 |
service_class->get_authorization_domains = get_authorization_domains;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_init (GDataTasksService *self)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
/* Nothing to see here */
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* The error format used by the Google Tasks API doesn’t seem to be documented
|
|
Packit |
4b6dd7 |
* anywhere, which is a little frustrating. Here’s an example of it:
|
|
Packit |
4b6dd7 |
* {
|
|
Packit |
4b6dd7 |
* "error": {
|
|
Packit |
4b6dd7 |
* "errors": [
|
|
Packit |
4b6dd7 |
* {
|
|
Packit |
4b6dd7 |
* "domain": "usageLimits",
|
|
Packit |
4b6dd7 |
* "reason": "dailyLimitExceededUnreg",
|
|
Packit |
4b6dd7 |
* "message": "Daily Limit for Unauthenticated Use Exceeded.",
|
|
Packit |
4b6dd7 |
* "extendedHelp": "https://code.google.com/apis/console"
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
* ],
|
|
Packit |
4b6dd7 |
* "code": 403,
|
|
Packit |
4b6dd7 |
* "message": "Daily Limit for Unauthenticated Use Exceeded."
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
* or:
|
|
Packit |
4b6dd7 |
* {
|
|
Packit |
4b6dd7 |
* "error": {
|
|
Packit |
4b6dd7 |
* "errors": [
|
|
Packit |
4b6dd7 |
* {
|
|
Packit |
4b6dd7 |
* "domain": "global",
|
|
Packit |
4b6dd7 |
* "reason": "authError",
|
|
Packit |
4b6dd7 |
* "message": "Invalid Credentials",
|
|
Packit |
4b6dd7 |
* "locationType": "header",
|
|
Packit |
4b6dd7 |
* "location": "Authorization"
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
* ],
|
|
Packit |
4b6dd7 |
* "code": 401,
|
|
Packit |
4b6dd7 |
* "message": "Invalid Credentials"
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
* }
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
static void
|
|
Packit |
4b6dd7 |
parse_error_response (GDataService *self, GDataOperationType operation_type,
|
|
Packit |
4b6dd7 |
guint status, const gchar *reason_phrase,
|
|
Packit |
4b6dd7 |
const gchar *response_body, gint length, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
JsonParser *parser = NULL; /* owned */
|
|
Packit |
4b6dd7 |
JsonReader *reader = NULL; /* owned */
|
|
Packit |
4b6dd7 |
gint i;
|
|
Packit |
4b6dd7 |
GError *child_error = NULL;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (response_body == NULL) {
|
|
Packit |
4b6dd7 |
goto parent;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
if (length == -1) {
|
|
Packit |
4b6dd7 |
length = strlen (response_body);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
parser = json_parser_new ();
|
|
Packit |
4b6dd7 |
if (!json_parser_load_from_data (parser, response_body, length,
|
|
Packit |
4b6dd7 |
&child_error)) {
|
|
Packit |
4b6dd7 |
goto parent;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
reader = json_reader_new (json_parser_get_root (parser));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Check that the outermost node is an object. */
|
|
Packit |
4b6dd7 |
if (!json_reader_is_object (reader)) {
|
|
Packit |
4b6dd7 |
goto parent;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Grab the ‘error’ member, then its ‘errors’ member. */
|
|
Packit |
4b6dd7 |
if (!json_reader_read_member (reader, "error") ||
|
|
Packit |
4b6dd7 |
!json_reader_is_object (reader) ||
|
|
Packit |
4b6dd7 |
!json_reader_read_member (reader, "errors") ||
|
|
Packit |
4b6dd7 |
!json_reader_is_array (reader)) {
|
|
Packit |
4b6dd7 |
goto parent;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Parse each of the errors. Return the first one, and print out any
|
|
Packit |
4b6dd7 |
* others. */
|
|
Packit |
4b6dd7 |
for (i = 0; i < json_reader_count_elements (reader); i++) {
|
|
Packit |
4b6dd7 |
const gchar *domain, *reason, *message, *extended_help;
|
|
Packit |
4b6dd7 |
const gchar *location_type, *location;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Parse the error. */
|
|
Packit |
4b6dd7 |
if (!json_reader_read_element (reader, i) ||
|
|
Packit |
4b6dd7 |
!json_reader_is_object (reader)) {
|
|
Packit |
4b6dd7 |
goto parent;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
json_reader_read_member (reader, "domain");
|
|
Packit |
4b6dd7 |
domain = json_reader_get_string_value (reader);
|
|
Packit |
4b6dd7 |
json_reader_end_member (reader);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
json_reader_read_member (reader, "reason");
|
|
Packit |
4b6dd7 |
reason = json_reader_get_string_value (reader);
|
|
Packit |
4b6dd7 |
json_reader_end_member (reader);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
json_reader_read_member (reader, "message");
|
|
Packit |
4b6dd7 |
message = json_reader_get_string_value (reader);
|
|
Packit |
4b6dd7 |
json_reader_end_member (reader);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
json_reader_read_member (reader, "extendedHelp");
|
|
Packit |
4b6dd7 |
extended_help = json_reader_get_string_value (reader);
|
|
Packit |
4b6dd7 |
json_reader_end_member (reader);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
json_reader_read_member (reader, "locationType");
|
|
Packit |
4b6dd7 |
location_type = json_reader_get_string_value (reader);
|
|
Packit |
4b6dd7 |
json_reader_end_member (reader);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
json_reader_read_member (reader, "location");
|
|
Packit |
4b6dd7 |
location = json_reader_get_string_value (reader);
|
|
Packit |
4b6dd7 |
json_reader_end_member (reader);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* End the error element. */
|
|
Packit |
4b6dd7 |
json_reader_end_element (reader);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Create an error message, but only for the first error */
|
|
Packit |
4b6dd7 |
if (error == NULL || *error == NULL) {
|
|
Packit |
4b6dd7 |
if (g_strcmp0 (domain, "usageLimits") == 0 &&
|
|
Packit |
4b6dd7 |
g_strcmp0 (reason,
|
|
Packit |
4b6dd7 |
"dailyLimitExceededUnreg") == 0) {
|
|
Packit |
4b6dd7 |
/* Daily Limit for Unauthenticated Use
|
|
Packit |
4b6dd7 |
* Exceeded. */
|
|
Packit |
4b6dd7 |
g_set_error (error, GDATA_SERVICE_ERROR,
|
|
Packit |
4b6dd7 |
GDATA_SERVICE_ERROR_API_QUOTA_EXCEEDED,
|
|
Packit |
4b6dd7 |
_("You have made too many API "
|
|
Packit |
4b6dd7 |
"calls recently. Please wait a "
|
|
Packit |
4b6dd7 |
"few minutes and try again."));
|
|
Packit |
4b6dd7 |
} else if (g_strcmp0 (domain, "global") == 0 &&
|
|
Packit |
4b6dd7 |
(g_strcmp0 (reason, "authError") == 0 ||
|
|
Packit |
4b6dd7 |
g_strcmp0 (reason, "required") == 0)) {
|
|
Packit |
4b6dd7 |
/* Authentication problem */
|
|
Packit |
4b6dd7 |
g_set_error (error, GDATA_SERVICE_ERROR,
|
|
Packit |
4b6dd7 |
GDATA_SERVICE_ERROR_AUTHENTICATION_REQUIRED,
|
|
Packit |
4b6dd7 |
_("You must be authenticated to "
|
|
Packit |
4b6dd7 |
"do this."));
|
|
Packit |
4b6dd7 |
} else {
|
|
Packit |
4b6dd7 |
/* Unknown or validation (protocol) error. Fall
|
|
Packit |
4b6dd7 |
* back to working off the HTTP status code. */
|
|
Packit |
4b6dd7 |
g_warning ("Unknown error code ‘%s’ in domain "
|
|
Packit |
4b6dd7 |
"‘%s’ received with location type "
|
|
Packit |
4b6dd7 |
"‘%s’, location ‘%s’, extended help "
|
|
Packit |
4b6dd7 |
"‘%s’ and message ‘%s’.",
|
|
Packit |
4b6dd7 |
reason, domain, location_type,
|
|
Packit |
4b6dd7 |
location, extended_help, message);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
goto parent;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
} else {
|
|
Packit |
4b6dd7 |
/* For all errors after the first, log the error in the
|
|
Packit |
4b6dd7 |
* terminal. */
|
|
Packit |
4b6dd7 |
g_debug ("Error message received in response: domain "
|
|
Packit |
4b6dd7 |
"‘%s’, reason ‘%s’, extended help ‘%s’, "
|
|
Packit |
4b6dd7 |
"message ‘%s’, location type ‘%s’, location "
|
|
Packit |
4b6dd7 |
"‘%s’.",
|
|
Packit |
4b6dd7 |
domain, reason, extended_help, message,
|
|
Packit |
4b6dd7 |
location_type, location);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* End the ‘errors’ and ‘error’ members. */
|
|
Packit |
4b6dd7 |
json_reader_end_element (reader);
|
|
Packit |
4b6dd7 |
json_reader_end_element (reader);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_clear_object (&reader);
|
|
Packit |
4b6dd7 |
g_clear_object (&parser);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Ensure we’ve actually set an error message. */
|
|
Packit |
4b6dd7 |
g_assert (error == NULL || *error != NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
parent:
|
|
Packit |
4b6dd7 |
g_clear_object (&reader);
|
|
Packit |
4b6dd7 |
g_clear_object (&parser);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Chain up to the parent class */
|
|
Packit |
4b6dd7 |
GDATA_SERVICE_CLASS (gdata_tasks_service_parent_class)->parse_error_response (self, operation_type, status, reason_phrase,
|
|
Packit |
4b6dd7 |
response_body, length, error);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
static GList *
|
|
Packit |
4b6dd7 |
get_authorization_domains (void)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
return g_list_prepend (NULL, get_tasks_authorization_domain ());
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_new:
|
|
Packit |
4b6dd7 |
* @authorizer: (allow-none): a #GDataAuthorizer to authorize the service's requests, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Creates a new #GDataTasksService using the given #GDataAuthorizer. If @authorizer is %NULL, all requests are made as an unauthenticated user.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: a new #GDataTasksService, or %NULL; unref with g_object_unref()
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataTasksService *
|
|
Packit |
4b6dd7 |
gdata_tasks_service_new (GDataAuthorizer *authorizer)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (authorizer == NULL || GDATA_IS_AUTHORIZER (authorizer), NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return g_object_new (GDATA_TYPE_TASKS_SERVICE,
|
|
Packit |
4b6dd7 |
"authorizer", authorizer,
|
|
Packit |
4b6dd7 |
NULL);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_get_primary_authorization_domain:
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The primary #GDataAuthorizationDomain for interacting with Google Tasks. This will not normally need to be used, as it's used internally
|
|
Packit |
4b6dd7 |
* by the #GDataTasksService methods. However, if using the plain #GDataService methods to implement custom queries or requests which libgdata
|
|
Packit |
4b6dd7 |
* does not support natively, then this domain may be needed to authorize the requests.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* The domain never changes, and is interned so that pointer comparison can be used to differentiate it from other authorization domains.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (transfer none): the service's authorization domain
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataAuthorizationDomain *
|
|
Packit |
4b6dd7 |
gdata_tasks_service_get_primary_authorization_domain (void)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
return get_tasks_authorization_domain ();
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_query_all_tasklists:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @query: (allow-none): a #GDataQuery with the query parameters, or %NULL
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @progress_callback: (allow-none) (scope call) (closure progress_user_data): a #GDataQueryProgressCallback to call when an entry is loaded, or %NULL
|
|
Packit |
4b6dd7 |
* @progress_user_data: (closure): data to pass to the @progress_callback function
|
|
Packit |
4b6dd7 |
* @error: (allow-none): a #GError, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Queries the service to return a list of all tasklists from the authenticated account which match the given
|
|
Packit |
4b6dd7 |
* @query. It will return all tasklists the user has read access to.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_service_query().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (transfer full): a #GDataFeed of query results; unref with g_object_unref()
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataFeed *
|
|
Packit |
4b6dd7 |
gdata_tasks_service_query_all_tasklists (GDataTasksService *self, GDataQuery *query, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GDataQueryProgressCallback progress_callback, gpointer progress_user_data, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
GDataFeed *feed;
|
|
Packit |
4b6dd7 |
gchar *request_uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_SERVICE (self), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (query == NULL || GDATA_IS_QUERY (query), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Ensure we're authenticated first */
|
|
Packit |
4b6dd7 |
if (gdata_authorizer_is_authorized_for_domain (gdata_service_get_authorizer (GDATA_SERVICE (self)),
|
|
Packit |
4b6dd7 |
get_tasks_authorization_domain ()) == FALSE) {
|
|
Packit |
4b6dd7 |
g_set_error_literal (error, GDATA_SERVICE_ERROR, GDATA_SERVICE_ERROR_AUTHENTICATION_REQUIRED,
|
|
Packit |
4b6dd7 |
_("You must be authenticated to query all tasklists."));
|
|
Packit |
4b6dd7 |
return NULL;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
request_uri = g_strconcat (_gdata_service_get_scheme (), "://www.googleapis.com/tasks/v1/users/@me/lists", NULL);
|
|
Packit |
4b6dd7 |
feed = gdata_service_query (GDATA_SERVICE (self), get_tasks_authorization_domain (), request_uri, query, GDATA_TYPE_TASKS_TASKLIST,
|
|
Packit |
4b6dd7 |
cancellable, progress_callback, progress_user_data, error);
|
|
Packit |
4b6dd7 |
g_free (request_uri);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return feed;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_query_all_tasklists_async:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @query: (allow-none): a #GDataQuery with the query parameters, or %NULL
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @progress_callback: (allow-none) (closure progress_user_data): a #GDataQueryProgressCallback to call when an entry is loaded, or %NULL
|
|
Packit |
4b6dd7 |
* @progress_user_data: (closure): data to pass to the @progress_callback function
|
|
Packit |
4b6dd7 |
* @destroy_progress_user_data: (allow-none): the function to call when @progress_callback will not be called any more, or %NULL. This function will be
|
|
Packit |
4b6dd7 |
* called with @progress_user_data as a parameter and can be used to free any memory allocated for it.
|
|
Packit |
4b6dd7 |
* @callback: a #GAsyncReadyCallback to call when authentication is finished
|
|
Packit |
4b6dd7 |
* @user_data: (closure): data to pass to the @callback function
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Queries the service to return a list of all tasklists from the authenticated account which match the given
|
|
Packit |
4b6dd7 |
* @query. @self and @query are all reffed when this function is called, so can safely be unreffed after
|
|
Packit |
4b6dd7 |
* this function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_tasks_service_query_all_tasklists(), which is the synchronous version of
|
|
Packit |
4b6dd7 |
* this function, and gdata_service_query_async(), which is the base asynchronous query function.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_query_all_tasklists_async (GDataTasksService *self, GDataQuery *query, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GDataQueryProgressCallback progress_callback, gpointer progress_user_data,
|
|
Packit |
4b6dd7 |
GDestroyNotify destroy_progress_user_data,
|
|
Packit |
4b6dd7 |
GAsyncReadyCallback callback, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
gchar *request_uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_SERVICE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (query == NULL || GDATA_IS_QUERY (query));
|
|
Packit |
4b6dd7 |
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
|
|
Packit |
4b6dd7 |
g_return_if_fail (callback != NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Ensure we're authenticated first */
|
|
Packit |
4b6dd7 |
if (gdata_authorizer_is_authorized_for_domain (gdata_service_get_authorizer (GDATA_SERVICE (self)),
|
|
Packit |
4b6dd7 |
get_tasks_authorization_domain ()) == FALSE) {
|
|
Packit |
4b6dd7 |
g_autoptr(GTask) task = NULL;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
task = g_task_new (self, cancellable, callback, user_data);
|
|
Packit |
4b6dd7 |
g_task_set_source_tag (task, gdata_service_query_async);
|
|
Packit |
4b6dd7 |
g_task_return_new_error (task, GDATA_SERVICE_ERROR, GDATA_SERVICE_ERROR_AUTHENTICATION_REQUIRED, "%s",
|
|
Packit |
4b6dd7 |
_("You must be authenticated to query all tasklists."));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
request_uri = g_strconcat (_gdata_service_get_scheme (), "://www.googleapis.com/tasks/v1/users/@me/lists", NULL);
|
|
Packit |
4b6dd7 |
gdata_service_query_async (GDATA_SERVICE (self), get_tasks_authorization_domain (), request_uri, query, GDATA_TYPE_TASKS_TASKLIST,
|
|
Packit |
4b6dd7 |
cancellable, progress_callback, progress_user_data, destroy_progress_user_data, callback, user_data);
|
|
Packit |
4b6dd7 |
g_free (request_uri);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_query_tasks:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @tasklist: a #GDataTasksTasklist
|
|
Packit |
4b6dd7 |
* @query: (allow-none): a #GDataQuery with the query parameters, or %NULL
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @progress_callback: (allow-none) (scope call) (closure progress_user_data): a #GDataQueryProgressCallback to call when an entry is loaded, or %NULL
|
|
Packit |
4b6dd7 |
* @progress_user_data: (closure): data to pass to the @progress_callback function
|
|
Packit |
4b6dd7 |
* @error: (allow-none): a #GError, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Queries the service to return a list of tasks in the given @tasklist, which match @query.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_service_query().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (transfer full): a #GDataFeed of query results; unref with g_object_unref()
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataFeed *
|
|
Packit |
4b6dd7 |
gdata_tasks_service_query_tasks (GDataTasksService *self, GDataTasksTasklist *tasklist, GDataQuery *query, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GDataQueryProgressCallback progress_callback, gpointer progress_user_data, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
gchar* request_uri;
|
|
Packit |
4b6dd7 |
GDataFeed *feed;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_SERVICE (self), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (gdata_entry_get_id (GDATA_ENTRY (tasklist)) != NULL, NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (query == NULL || GDATA_IS_QUERY (query), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Ensure we're authenticated first */
|
|
Packit |
4b6dd7 |
if (gdata_authorizer_is_authorized_for_domain (gdata_service_get_authorizer (GDATA_SERVICE (self)),
|
|
Packit |
4b6dd7 |
get_tasks_authorization_domain ()) == FALSE) {
|
|
Packit |
4b6dd7 |
g_set_error_literal (error, GDATA_SERVICE_ERROR, GDATA_SERVICE_ERROR_AUTHENTICATION_REQUIRED,
|
|
Packit |
4b6dd7 |
_("You must be authenticated to query your own tasks."));
|
|
Packit |
4b6dd7 |
return NULL;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Should add /tasks as requested by API */
|
|
Packit |
4b6dd7 |
request_uri = g_strconcat (_gdata_service_get_scheme (), "://www.googleapis.com/tasks/v1/lists/", gdata_entry_get_id (GDATA_ENTRY (tasklist)), "/tasks", NULL);
|
|
Packit |
4b6dd7 |
/* Execute the query */
|
|
Packit |
4b6dd7 |
feed = gdata_service_query (GDATA_SERVICE (self), get_tasks_authorization_domain (), request_uri, query, GDATA_TYPE_TASKS_TASK, cancellable,
|
|
Packit |
4b6dd7 |
progress_callback, progress_user_data, error);
|
|
Packit |
4b6dd7 |
g_free (request_uri);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return feed;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_query_tasks_async:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @tasklist: a #GDataTasksTasklist
|
|
Packit |
4b6dd7 |
* @query: (allow-none): a #GDataQuery with the query parameters, or %NULL
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @progress_callback: (allow-none) (closure progress_user_data): a #GDataQueryProgressCallback to call when an entry is loaded, or %NULL
|
|
Packit |
4b6dd7 |
* @progress_user_data: (closure): data to pass to the @progress_callback function
|
|
Packit |
4b6dd7 |
* @destroy_progress_user_data: (allow-none): the function to call when @progress_callback will not be called any more, or %NULL. This function will be
|
|
Packit |
4b6dd7 |
* called with @progress_user_data as a parameter and can be used to free any memory allocated for it.
|
|
Packit |
4b6dd7 |
* @callback: a #GAsyncReadyCallback to call when the query is finished
|
|
Packit |
4b6dd7 |
* @user_data: (closure): data to pass to the @callback function
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Queries the service to return a list of tasks in the given @tasklist, which match @query. @self, @tasklist and @query are all reffed when this
|
|
Packit |
4b6dd7 |
* function is called, so can safely be unreffed after this function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Get the results of the query using gdata_service_query_finish() in the @callback.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_tasks_service_query_tasks(), which is the synchronous version of this function, and gdata_service_query_async(),
|
|
Packit |
4b6dd7 |
* which is the base asynchronous query function.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_query_tasks_async (GDataTasksService *self, GDataTasksTasklist *tasklist, GDataQuery *query, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GDataQueryProgressCallback progress_callback, gpointer progress_user_data,
|
|
Packit |
4b6dd7 |
GDestroyNotify destroy_progress_user_data,
|
|
Packit |
4b6dd7 |
GAsyncReadyCallback callback, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
gchar *request_uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_SERVICE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist));
|
|
Packit |
4b6dd7 |
g_return_if_fail (gdata_entry_get_id (GDATA_ENTRY (tasklist)) != NULL);
|
|
Packit |
4b6dd7 |
g_return_if_fail (query == NULL || GDATA_IS_QUERY (query));
|
|
Packit |
4b6dd7 |
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
|
|
Packit |
4b6dd7 |
g_return_if_fail (callback != NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Ensure we're authenticated first */
|
|
Packit |
4b6dd7 |
if (gdata_authorizer_is_authorized_for_domain (gdata_service_get_authorizer (GDATA_SERVICE (self)),
|
|
Packit |
4b6dd7 |
get_tasks_authorization_domain ()) == FALSE) {
|
|
Packit |
4b6dd7 |
g_autoptr(GTask) task = NULL;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
task = g_task_new (self, cancellable, callback, user_data);
|
|
Packit |
4b6dd7 |
g_task_set_source_tag (task, gdata_service_query_async);
|
|
Packit |
4b6dd7 |
g_task_return_new_error (task, GDATA_SERVICE_ERROR, GDATA_SERVICE_ERROR_AUTHENTICATION_REQUIRED, "%s",
|
|
Packit |
4b6dd7 |
_("You must be authenticated to query your own tasks."));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return;
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/* Should add /tasks as requested by API */
|
|
Packit |
4b6dd7 |
request_uri = g_strconcat (_gdata_service_get_scheme (), "://www.googleapis.com/tasks/v1/lists/", gdata_entry_get_id (GDATA_ENTRY (tasklist)), "/tasks", NULL);
|
|
Packit |
4b6dd7 |
/* Execute the query */
|
|
Packit |
4b6dd7 |
gdata_service_query_async (GDATA_SERVICE (self), get_tasks_authorization_domain (), request_uri, query, GDATA_TYPE_TASKS_TASK, cancellable,
|
|
Packit |
4b6dd7 |
progress_callback, progress_user_data, destroy_progress_user_data, callback, user_data);
|
|
Packit |
4b6dd7 |
g_free (request_uri);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_insert_task:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @task: the #GDataTasksTask to insert
|
|
Packit |
4b6dd7 |
* @tasklist: #GDataTasksTasklist to insert into
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @error: (allow-none): a #GError, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Inserts @task by uploading it to the online tasks service into tasklist @tasklist. It is safe to unref @tasklist after function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_service_insert_entry().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (transfer full): an updated #GDataTasksTask, or %NULL; unref with g_object_unref()
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataTasksTask *
|
|
Packit |
4b6dd7 |
gdata_tasks_service_insert_task (GDataTasksService *self, GDataTasksTask *task, GDataTasksTasklist *tasklist, GCancellable *cancellable, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
gchar *request_uri;
|
|
Packit |
4b6dd7 |
GDataEntry *entry;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_SERVICE (self), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_TASK (task), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (gdata_entry_get_id (GDATA_ENTRY (tasklist)) != NULL, NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
request_uri = g_strconcat (_gdata_service_get_scheme (), "://www.googleapis.com/tasks/v1/lists/", gdata_entry_get_id (GDATA_ENTRY (tasklist)), "/tasks", NULL);
|
|
Packit |
4b6dd7 |
entry = gdata_service_insert_entry (GDATA_SERVICE (self), get_tasks_authorization_domain (), request_uri, GDATA_ENTRY (task), cancellable, error);
|
|
Packit |
4b6dd7 |
g_free (request_uri);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return GDATA_TASKS_TASK (entry);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_insert_task_async:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @task: the #GDataTasksTask to insert
|
|
Packit |
4b6dd7 |
* @tasklist: #GDataTasksTasklist to insert into
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @callback: a #GAsyncReadyCallback to call when insertion is finished
|
|
Packit |
4b6dd7 |
* @user_data: (closure): data to pass to the @callback function
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Inserts @task by uploading it to the online tasks service into tasklist @tasklist. @self, @task and @tasklist are all reffed when this function is called, so can safely be
|
|
Packit |
4b6dd7 |
* unreffed after this function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* @callback should call gdata_service_insert_entry_finish() to obtain a #GDataTasksTask representing the inserted task and to check for possible
|
|
Packit |
4b6dd7 |
* errors.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_tasks_service_insert_task(), which is the synchronous version of this function, and
|
|
Packit |
4b6dd7 |
* gdata_service_insert_entry_async(), which is the base asynchronous insertion function.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_insert_task_async (GDataTasksService *self, GDataTasksTask *task, GDataTasksTasklist *tasklist, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GAsyncReadyCallback callback, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
gchar *request_uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_SERVICE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_TASK (task));
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist));
|
|
Packit |
4b6dd7 |
g_return_if_fail (gdata_entry_get_id (GDATA_ENTRY (tasklist)) != NULL);
|
|
Packit |
4b6dd7 |
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
request_uri = g_strconcat (_gdata_service_get_scheme (), "://www.googleapis.com/tasks/v1/lists/", gdata_entry_get_id (GDATA_ENTRY (tasklist)), "/tasks", NULL);
|
|
Packit |
4b6dd7 |
gdata_service_insert_entry_async (GDATA_SERVICE (self), get_tasks_authorization_domain (), request_uri, GDATA_ENTRY (task), cancellable,
|
|
Packit |
4b6dd7 |
callback, user_data);
|
|
Packit |
4b6dd7 |
g_free (request_uri);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_insert_tasklist:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @tasklist: #GDataTasksTasklist to insert
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @error: (allow-none): a #GError, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Inserts @tasklist by uploading it to the online tasks service.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_service_insert_entry().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (transfer full): an updated #GDataTasksTasklist, or %NULL; unref with g_object_unref()
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataTasksTasklist *
|
|
Packit |
4b6dd7 |
gdata_tasks_service_insert_tasklist (GDataTasksService *self, GDataTasksTasklist *tasklist, GCancellable *cancellable, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
gchar *request_uri;
|
|
Packit |
4b6dd7 |
GDataEntry *entry;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_SERVICE (self), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
request_uri = g_strconcat (_gdata_service_get_scheme (), "://www.googleapis.com/tasks/v1/users/@me/lists", NULL);
|
|
Packit |
4b6dd7 |
entry = gdata_service_insert_entry (GDATA_SERVICE (self), get_tasks_authorization_domain (), request_uri, GDATA_ENTRY (tasklist), cancellable, error);
|
|
Packit |
4b6dd7 |
g_free (request_uri);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return GDATA_TASKS_TASKLIST (entry);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_insert_tasklist_async:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @tasklist: #GDataTasksTasklist to insert
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @callback: a #GAsyncReadyCallback to call when insertion is finished
|
|
Packit |
4b6dd7 |
* @user_data: (closure): data to pass to the @callback function
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Inserts @tasklist by uploading it to the online tasks service. @self and @tasklist are both reffed when this function is called, so can safely be
|
|
Packit |
4b6dd7 |
* unreffed after this function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* @callback should call gdata_service_insert_entry_finish() to obtain a #GDataTasksTasklist representing the inserted tasklist and to check for possible
|
|
Packit |
4b6dd7 |
* errors.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_tasks_service_insert_tasklist(), which is the synchronous version of this function, and
|
|
Packit |
4b6dd7 |
* gdata_service_insert_entry_async(), which is the base asynchronous insertion function.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_insert_tasklist_async (GDataTasksService *self, GDataTasksTasklist *tasklist, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GAsyncReadyCallback callback, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
gchar *request_uri;
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_SERVICE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist));
|
|
Packit |
4b6dd7 |
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
request_uri = g_strconcat (_gdata_service_get_scheme (), "://www.googleapis.com/tasks/v1/users/@me/lists", NULL);
|
|
Packit |
4b6dd7 |
gdata_service_insert_entry_async (GDATA_SERVICE (self), get_tasks_authorization_domain (), request_uri, GDATA_ENTRY (tasklist), cancellable,
|
|
Packit |
4b6dd7 |
callback, user_data);
|
|
Packit |
4b6dd7 |
g_free (request_uri);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_delete_task:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @task: the #GDataTasksTask to delete
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @error: (allow-none): a #GError, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Delete @task from online tasks service.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_service_delete_entry().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: %TRUE on success, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gboolean
|
|
Packit |
4b6dd7 |
gdata_tasks_service_delete_task (GDataTasksService *self, GDataTasksTask *task, GCancellable *cancellable, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_SERVICE (self), FALSE);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_TASK (task), FALSE);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return gdata_service_delete_entry (GDATA_SERVICE (self), get_tasks_authorization_domain (), GDATA_ENTRY (task), cancellable, error);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_delete_task_async:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @task: #GDataTasksTask to delete
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @callback: a #GAsyncReadyCallback to call when insertion is finished
|
|
Packit |
4b6dd7 |
* @user_data: (closure): data to pass to the @callback function
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Deletes @task from online tasks service. @self and @task are both reffed when this function is called, so can safely be
|
|
Packit |
4b6dd7 |
* unreffed after this function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* @callback should call gdata_service_delete_entry_finish() to finish deleting task and to check for possible
|
|
Packit |
4b6dd7 |
* errors.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_tasks_service_delete_task(), which is the synchronous version of this function, and
|
|
Packit |
4b6dd7 |
* gdata_service_delete_entry_async(), which is the base asynchronous insertion function.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_delete_task_async (GDataTasksService *self, GDataTasksTask *task, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GAsyncReadyCallback callback, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_SERVICE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_TASK (task));
|
|
Packit |
4b6dd7 |
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdata_service_delete_entry_async (GDATA_SERVICE (self), get_tasks_authorization_domain (), GDATA_ENTRY (task), cancellable,
|
|
Packit |
4b6dd7 |
callback, user_data);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_delete_tasklist:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @tasklist: the #GDataTasksTasklist to delete
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @error: (allow-none): a #GError, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Delete @tasklist from online tasks service.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_service_delete_entry().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: %TRUE on success, %FALSE otherwise
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
gboolean
|
|
Packit |
4b6dd7 |
gdata_tasks_service_delete_tasklist (GDataTasksService *self, GDataTasksTasklist *tasklist, GCancellable *cancellable, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_SERVICE (self), FALSE);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist), FALSE);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), FALSE);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return gdata_service_delete_entry (GDATA_SERVICE (self), get_tasks_authorization_domain (), GDATA_ENTRY (tasklist), cancellable, error);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_delete_tasklist_async:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @tasklist: #GDataTasksTasklist to delete
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @callback: a #GAsyncReadyCallback to call when insertion is finished
|
|
Packit |
4b6dd7 |
* @user_data: (closure): data to pass to the @callback function
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Deletes @tasklist from online tasks service. @self and @tasklist are both reffed when this function is called, so can safely be
|
|
Packit |
4b6dd7 |
* unreffed after this function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* @callback should call gdata_service_delete_entry_finish() to finish deleting tasklist and to check for possible
|
|
Packit |
4b6dd7 |
* errors.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_tasks_service_delete_tasklist(), which is the synchronous version of this function, and
|
|
Packit |
4b6dd7 |
* gdata_service_delete_entry_async(), which is the base asynchronous insertion function.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_delete_tasklist_async (GDataTasksService *self, GDataTasksTasklist *tasklist, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GAsyncReadyCallback callback, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_SERVICE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist));
|
|
Packit |
4b6dd7 |
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdata_service_delete_entry_async (GDATA_SERVICE (self), get_tasks_authorization_domain (), GDATA_ENTRY (tasklist), cancellable,
|
|
Packit |
4b6dd7 |
callback, user_data);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_update_task:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @task: the #GDataTasksTask to update
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @error: (allow-none): a #GError, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Update @task in online tasks service.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_service_update_entry().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (transfer full): an updated #GDataTasksTask, or %NULL; unref with g_object_unref()
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataTasksTask *
|
|
Packit |
4b6dd7 |
gdata_tasks_service_update_task (GDataTasksService *self, GDataTasksTask *task, GCancellable *cancellable, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_SERVICE (self), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_TASK (task), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return GDATA_TASKS_TASK (gdata_service_update_entry (GDATA_SERVICE (self), get_tasks_authorization_domain (), GDATA_ENTRY (task), cancellable, error));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_update_task_async:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @task: #GDataTasksTask to update
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @callback: a #GAsyncReadyCallback to call when insertion is finished
|
|
Packit |
4b6dd7 |
* @user_data: (closure): data to pass to the @callback function
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Updates @task to online tasks service. @self and @task are both reffed when this function is called, so can safely be
|
|
Packit |
4b6dd7 |
* unreffed after this function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* @callback should call gdata_service_update_entry_finish() to obtain a #GDataTasksTask representing the updated task and to check for possible
|
|
Packit |
4b6dd7 |
* errors.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_tasks_service_update_task(), which is the synchronous version of this function, and
|
|
Packit |
4b6dd7 |
* gdata_service_update_entry_async(), which is the base asynchronous insertion function.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_update_task_async (GDataTasksService *self, GDataTasksTask *task, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GAsyncReadyCallback callback, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_SERVICE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_TASK (task));
|
|
Packit |
4b6dd7 |
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdata_service_update_entry_async (GDATA_SERVICE (self), get_tasks_authorization_domain (), GDATA_ENTRY (task), cancellable,
|
|
Packit |
4b6dd7 |
callback, user_data);
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_update_tasklist:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @tasklist: the #GDataTasksTasklist to update
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @error: (allow-none): a #GError, or %NULL
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Update @tasklist in online tasks service.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_service_update_entry().
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Return value: (transfer full): an updated #GDataTasksTasklist, or %NULL; unref with g_object_unref()
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
GDataTasksTasklist *
|
|
Packit |
4b6dd7 |
gdata_tasks_service_update_tasklist (GDataTasksService *self, GDataTasksTasklist *tasklist, GCancellable *cancellable, GError **error)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_SERVICE (self), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable), NULL);
|
|
Packit |
4b6dd7 |
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
return GDATA_TASKS_TASKLIST (gdata_service_update_entry (GDATA_SERVICE (self), get_tasks_authorization_domain (), GDATA_ENTRY (tasklist), cancellable, error));
|
|
Packit |
4b6dd7 |
}
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
/**
|
|
Packit |
4b6dd7 |
* gdata_tasks_service_update_tasklist_async:
|
|
Packit |
4b6dd7 |
* @self: a #GDataTasksService
|
|
Packit |
4b6dd7 |
* @tasklist: #GDataTasksTasklist to update
|
|
Packit |
4b6dd7 |
* @cancellable: (allow-none): optional #GCancellable object, or %NULL
|
|
Packit |
4b6dd7 |
* @callback: a #GAsyncReadyCallback to call when insertion is finished
|
|
Packit |
4b6dd7 |
* @user_data: (closure): data to pass to the @callback function
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Updates @tasklist from online tasks service. @self and @tasklist are both reffed when this function is called, so can safely be
|
|
Packit |
4b6dd7 |
* unreffed after this function returns.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* @callback should call gdata_service_update_entry_finish() to obtain a #GDataTasksTasklist representing the updated task and to check for possible
|
|
Packit |
4b6dd7 |
* errors.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* For more details, see gdata_tasks_service_update_tasklist(), which is the synchronous version of this function, and
|
|
Packit |
4b6dd7 |
* gdata_service_update_entry_async(), which is the base asynchronous insertion function.
|
|
Packit |
4b6dd7 |
*
|
|
Packit |
4b6dd7 |
* Since: 0.15.0
|
|
Packit |
4b6dd7 |
*/
|
|
Packit |
4b6dd7 |
void
|
|
Packit |
4b6dd7 |
gdata_tasks_service_update_tasklist_async (GDataTasksService *self, GDataTasksTasklist *tasklist, GCancellable *cancellable,
|
|
Packit |
4b6dd7 |
GAsyncReadyCallback callback, gpointer user_data)
|
|
Packit |
4b6dd7 |
{
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_SERVICE (self));
|
|
Packit |
4b6dd7 |
g_return_if_fail (GDATA_IS_TASKS_TASKLIST (tasklist));
|
|
Packit |
4b6dd7 |
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
|
|
Packit |
4b6dd7 |
|
|
Packit |
4b6dd7 |
gdata_service_update_entry_async (GDATA_SERVICE (self), get_tasks_authorization_domain (), GDATA_ENTRY (tasklist), cancellable,
|
|
Packit |
4b6dd7 |
callback, user_data);
|
|
Packit |
4b6dd7 |
}
|