1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_GOOGLE_APIS_GDATA_CONTACTS_REQUESTS_H_
6 #define CHROME_BROWSER_GOOGLE_APIS_GDATA_CONTACTS_REQUESTS_H_
10 #include "chrome/browser/google_apis/base_requests.h"
12 namespace google_apis {
14 //========================== GetContactGroupsRequest =========================
16 // This class fetches a JSON feed containing a user's contact groups.
17 class GetContactGroupsRequest : public GetDataRequest {
19 GetContactGroupsRequest(RequestSender* runner,
20 const GetDataCallback& callback);
21 virtual ~GetContactGroupsRequest();
23 void set_feed_url_for_testing(const GURL& url) {
24 feed_url_for_testing_ = url;
28 // Overridden from GetDataRequest.
29 virtual GURL GetURL() const OVERRIDE;
32 // If non-empty, URL of the feed to fetch.
33 GURL feed_url_for_testing_;
35 DISALLOW_COPY_AND_ASSIGN(GetContactGroupsRequest);
38 //============================ GetContactsRequest ============================
40 // This class fetches a JSON feed containing a user's contacts.
41 class GetContactsRequest : public GetDataRequest {
43 GetContactsRequest(RequestSender* runner,
44 const std::string& group_id,
45 const base::Time& min_update_time,
46 const GetDataCallback& callback);
47 virtual ~GetContactsRequest();
49 void set_feed_url_for_testing(const GURL& url) {
50 feed_url_for_testing_ = url;
54 // Overridden from GetDataRequest.
55 virtual GURL GetURL() const OVERRIDE;
58 // If non-empty, URL of the feed to fetch.
59 GURL feed_url_for_testing_;
61 // If non-empty, contains the ID of the group whose contacts should be
62 // returned. Group IDs generally look like this:
63 // http://www.google.com/m8/feeds/groups/user%40gmail.com/base/6
64 std::string group_id_;
66 // If is_null() is false, contains a minimum last-updated time that will be
67 // used to filter contacts.
68 base::Time min_update_time_;
70 DISALLOW_COPY_AND_ASSIGN(GetContactsRequest);
73 //========================== GetContactPhotoRequest ==========================
75 // This class fetches a contact's photo.
76 class GetContactPhotoRequest : public UrlFetchRequestBase {
78 GetContactPhotoRequest(RequestSender* runner,
79 const GURL& photo_url,
80 const GetContentCallback& callback);
81 virtual ~GetContactPhotoRequest();
84 // Overridden from UrlFetchRequestBase.
85 virtual GURL GetURL() const OVERRIDE;
86 virtual void ProcessURLFetchResults(const net::URLFetcher* source) OVERRIDE;
87 virtual void RunCallbackOnPrematureFailure(GDataErrorCode code) OVERRIDE;
90 // Location of the photo to fetch.
93 // Callback to which the photo data is passed.
94 GetContentCallback callback_;
96 DISALLOW_COPY_AND_ASSIGN(GetContactPhotoRequest);
99 } // namespace google_apis
101 #endif // CHROME_BROWSER_GOOGLE_APIS_GDATA_CONTACTS_REQUESTS_H_