| // Copyright 2021 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef GOOGLE_APIS_CALENDAR_CALENDAR_API_URL_GENERATOR_H_ |
| #define GOOGLE_APIS_CALENDAR_CALENDAR_API_URL_GENERATOR_H_ |
| |
| #include <string> |
| |
| #include "base/time/time.h" |
| #include "google_apis/gaia/gaia_urls.h" |
| #include "url/gurl.h" |
| |
| namespace google_apis { |
| |
| namespace calendar { |
| |
| // This class is used to generate URLs for communicating with calendar api |
| // servers for production, and a local server for testing. |
| class CalendarApiUrlGenerator { |
| public: |
| CalendarApiUrlGenerator(); |
| CalendarApiUrlGenerator(const CalendarApiUrlGenerator& src); |
| CalendarApiUrlGenerator& operator=(const CalendarApiUrlGenerator& src); |
| ~CalendarApiUrlGenerator(); |
| |
| // Returns a URL to fetch a list of calendar events. |
| // |start_time| Start time of the event window |
| // |end_time| End time of the aforementioned window |
| // |single_events| If true, expand recurring events into instances and only |
| // return single one-off events and instances of recurring |
| // events, but not the underlying recurring events |
| // themselves |
| GURL GetCalendarEventListUrl(const base::Time& start_time, |
| const base::Time& end_time, |
| bool single_events) const; |
| |
| // Returns a URL to fetch a map of calendar color id to color code. |
| GURL GetCalendarColorListUrl() const; |
| |
| // The base url can be set here. It defaults to the production base url. |
| void SetBaseUrlForTesting(const std::string& url) { base_url_ = GURL(url); } |
| |
| private: |
| GURL base_url_{GaiaUrls::GetInstance()->google_apis_origin_url()}; |
| }; |
| |
| } // namespace calendar |
| } // namespace google_apis |
| |
| #endif // GOOGLE_APIS_CALENDAR_CALENDAR_API_URL_GENERATOR_H_ |