Exemple #1
0
        public static string ToFormEncoded(this GoogleDriveRequestBody data)
        {
            var parameters = data.Select(p => Uri.EscapeDataString(p.Key) + "=" + Uri.EscapeDataString(p.Value.ToString()));

            return(string.Join("&", parameters));
        }
Exemple #2
0
        /// <summary>
        /// Refreshes the access token using the refresh token
        /// </summary>
        private void RefreshAccessToken()
        {
          var body = new GoogleDriveRequestBody();

          m_JsonWebToken.Refresh();
          body[Metadata.ASSERTION] = m_JsonWebToken.ToString();
          body[Metadata.GRANT_TYPE] = JsonWebToken.GRANT_TYPE;

          var stream = body.ToFormEncoded().ToStream();

          try
          {
            var req = CreateRequest(HTTPRequestMethod.POST, ContentType.FORM_URL_ENCODED, ApiUrls.Token(), stream);
            var res = SendRequest(req);

            m_AccessToken = res.GetJSON().Data[Metadata.ACCESS_TOKEN];
          }
          catch(System.Net.WebException ex)
          {
            throw new FileSystemException(ex.Message, ex);
          }
        }
Exemple #3
0
        /// <summary>
        /// Renames a file/folder by its ID
        /// </summary>
        public void Rename(string id, string name)
        {
          Ensure.NotNull(id, "id");
          Ensure.NotNull(name, "name");

          var body = new GoogleDriveRequestBody();
          body.SetTitle(name);

          Patch(ApiUrls.Rename(id), body);
        }
Exemple #4
0
        /// <summary>
        /// Sets modification timestamp
        /// </summary>
        public void SetModifiedDate(string id, DateTime date)
        {
          Ensure.NotNull(id, "id");

          var body = new GoogleDriveRequestBody();
          body.SetModifiedDate(date);

          Patch(ApiUrls.SetModifiedDate(id), body);
        }
Exemple #5
0
        /// <summary>
        /// Creates a file
        /// </summary>
        public GoogleDriveHandle CreateFile(string parentId, string name, Stream stream)
        {
          Ensure.NotNull(parentId, "parentId");
          Ensure.NotNull(name, "name");

          // 1. Start a resumable session. 
          var body = new GoogleDriveRequestBody();
          body.SetTitle(name);
          body.SetParent(parentId);

          var reqStream = body.ToJSON().ToStream();

          var res = TrySend(HTTPRequestMethod.POST, ContentType.JSON, ApiUrls.Upload(), reqStream);

          // 2. Save the resumable session URI.
          var location = res.Headers[HEADER_LOCATION].FormatUri();

          // 3. Upload the file. 
          var info = Post(location, stream);

          return new GoogleDriveHandle(info.Data);
        }
Exemple #6
0
        /// <summary>
        /// Creates a file
        /// </summary>
        public GoogleDriveHandle CreateFile(string parentId, string name)
        {
          Ensure.NotNull(parentId, "parentId");

          var body = new GoogleDriveRequestBody();
          body.SetTitle(name);
          body.SetParent(parentId);

          var res = Post(ApiUrls.Files(), body);

          var handle = new GoogleDriveHandle(res.Data);

          return handle;
        }