Home | History | Annotate | Download | only in drive
      1 // Copyright (c) 2013 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.
      4 
      5 #ifndef GOOGLE_APIS_DRIVE_DRIVE_API_URL_GENERATOR_H_
      6 #define GOOGLE_APIS_DRIVE_DRIVE_API_URL_GENERATOR_H_
      7 
      8 #include <string>
      9 
     10 #include "url/gurl.h"
     11 
     12 namespace google_apis {
     13 
     14 // This class is used to generate URLs for communicating with drive api
     15 // servers for production, and a local server for testing.
     16 class DriveApiUrlGenerator {
     17  public:
     18   // |base_url| is the path to the target drive api server.
     19   // Note that this is an injecting point for a testing server.
     20   DriveApiUrlGenerator(const GURL& base_url, const GURL& base_download_url);
     21   ~DriveApiUrlGenerator();
     22 
     23   // The base URL for communicating with the production drive api server.
     24   static const char kBaseUrlForProduction[];
     25 
     26   // The base URL for the file download server for production.
     27   static const char kBaseDownloadUrlForProduction[];
     28 
     29   // Returns a URL to invoke "About: get" method.
     30   GURL GetAboutGetUrl() const;
     31 
     32   // Returns a URL to invoke "Apps: list" method.
     33   // Set |use_internal_endpoint| to true if official Chrome's API key is used
     34   // and retrieving more information (related to App uninstall) is necessary.
     35   GURL GetAppsListUrl(bool use_internal_endpoint) const;
     36 
     37   // Returns a URL to uninstall an app with the give |app_id|.
     38   GURL GetAppsDeleteUrl(const std::string& app_id) const;
     39 
     40   // Returns a URL to fetch a file metadata.
     41   GURL GetFilesGetUrl(const std::string& file_id) const;
     42 
     43   // Returns a URL to authorize an app to access a file.
     44   GURL GetFilesAuthorizeUrl(const std::string& file_id,
     45                             const std::string& app_id) const;
     46 
     47   // Returns a URL to create a resource.
     48   GURL GetFilesInsertUrl() const;
     49 
     50   // Returns a URL to patch file metadata.
     51   GURL GetFilesPatchUrl(const std::string& file_id,
     52                         bool set_modified_date,
     53                         bool update_viewed_date) const;
     54 
     55   // Returns a URL to copy a resource specified by |file_id|.
     56   GURL GetFilesCopyUrl(const std::string& file_id) const;
     57 
     58   // Returns a URL to fetch file list.
     59   GURL GetFilesListUrl(int max_results,
     60                        const std::string& page_token,
     61                        const std::string& q) const;
     62 
     63   // Returns a URL to delete a resource with the given |file_id|.
     64   GURL GetFilesDeleteUrl(const std::string& file_id) const;
     65 
     66   // Returns a URL to trash a resource with the given |file_id|.
     67   GURL GetFilesTrashUrl(const std::string& file_id) const;
     68 
     69   // Returns a URL to fetch a list of changes.
     70   GURL GetChangesListUrl(bool include_deleted,
     71                          int max_results,
     72                          const std::string& page_token,
     73                          int64 start_change_id) const;
     74 
     75   // Returns a URL to add a resource to a directory with |folder_id|.
     76   GURL GetChildrenInsertUrl(const std::string& folder_id) const;
     77 
     78   // Returns a URL to remove a resource with |child_id| from a directory
     79   // with |folder_id|.
     80   GURL GetChildrenDeleteUrl(const std::string& child_id,
     81                             const std::string& folder_id) const;
     82 
     83   // Returns a URL to initiate uploading a new file.
     84   GURL GetInitiateUploadNewFileUrl(bool set_modified_date) const;
     85 
     86   // Returns a URL to initiate uploading an existing file specified by
     87   // |resource_id|.
     88   GURL GetInitiateUploadExistingFileUrl(const std::string& resource_id,
     89                                         bool set_modified_date) const;
     90 
     91   // Generates a URL for downloading a file.
     92   GURL GenerateDownloadFileUrl(const std::string& resource_id) const;
     93 
     94   // Generates a URL for adding permissions.
     95   GURL GetPermissionsInsertUrl(const std::string& resource_id) const;
     96 
     97  private:
     98   const GURL base_url_;
     99   const GURL base_download_url_;
    100 
    101   // This class is copyable hence no DISALLOW_COPY_AND_ASSIGN here.
    102 };
    103 
    104 }  // namespace google_apis
    105 
    106 #endif  // GOOGLE_APIS_DRIVE_DRIVE_API_URL_GENERATOR_H_
    107