/// <summary> /// Share an Album or Image to the Gallery. OAuth authentication required. /// </summary> /// <param name="galleryItemId">The gallery item id.</param> /// <param name="title">The title of the image. This is required.</param> /// <param name="topicId">The topic id - not the topic name.</param> /// <param name="bypassTerms"> /// If the user has not accepted the terms yet, this endpoint will return an error. To by-pass /// the terms in general simply set this value to true. /// </param> /// <param name="mature">If the post is mature, set this value to true.</param> /// <exception cref="ArgumentNullException"> /// Thrown when a null reference is passed to a method that does not accept it as a /// valid argument. /// </exception> /// <exception cref="ImgurException">Thrown when an error is found in a response from an Imgur endpoint.</exception> /// <exception cref="MashapeException">Thrown when an error is found in a response from a Mashape endpoint.</exception> /// <returns></returns> public async Task <bool> PublishToGalleryAsync(string galleryItemId, string title, string topicId = null, bool?bypassTerms = null, bool?mature = null) { if (string.IsNullOrWhiteSpace(galleryItemId)) { throw new ArgumentNullException(nameof(galleryItemId)); } if (string.IsNullOrWhiteSpace(title)) { throw new ArgumentNullException(nameof(title)); } if (ApiClient.OAuth2Token == null) { throw new ArgumentNullException(nameof(ApiClient.OAuth2Token), OAuth2RequiredExceptionMessage); } var url = $"gallery/{galleryItemId}"; using (var request = GalleryRequestBuilder.PublishToGalleryRequest(url, title, topicId, bypassTerms, mature)) { var published = await SendRequestAsync <bool>(request).ConfigureAwait(false); return(published); } }
public void PublishToGalleryRequest_WithUrlNull_ThrowsArgumentNullException() { var requestBuilder = new GalleryRequestBuilder(); var exception = Record.Exception(() => GalleryRequestBuilder.PublishToGalleryRequest(null, "test")); Assert.NotNull(exception); Assert.IsType <ArgumentNullException>(exception); var argNullException = (ArgumentNullException)exception; Assert.Equal(argNullException.ParamName, "url"); }
public async Task PublishToGalleryRequest_WithTitleOnly_Equal() { var client = new ImgurClient("123", "1234"); var requestBuilder = new GalleryRequestBuilder(); var mockUrl = $"{client.EndpointUrl}gallery/XysioD"; var request = GalleryRequestBuilder.PublishToGalleryRequest(mockUrl, "Hello World!"); Assert.NotNull(request); var expected = "title=Hello+World%21"; Assert.Equal(expected, await request.Content.ReadAsStringAsync().ConfigureAwait(false)); Assert.Equal("https://api.imgur.com/3/gallery/XysioD", request.RequestUri.ToString()); Assert.Equal(HttpMethod.Post, request.Method); }
/// <summary> /// Share an Album or Image to the Gallery. OAuth authentication required. /// </summary> /// <param name="galleryItemId">The gallery item id.</param> /// <param name="title">The title of the image. This is required.</param> /// <param name="topicId">The topic id - not the topic name.</param> /// <param name="bypassTerms"> /// If the user has not accepted the terms yet, this endpoint will return an error. To by-pass /// the terms in general simply set this value to true. /// </param> /// <param name="mature">If the post is mature, set this value to true.</param> /// <exception cref="ArgumentNullException"> /// Thrown when a null reference is passed to a method that does not accept it as a /// valid argument. /// </exception> /// <exception cref="ImgurException">Thrown when an error is found in a response from an Imgur endpoint.</exception> /// <exception cref="MashapeException">Thrown when an error is found in a response from a Mashape endpoint.</exception> /// <returns></returns> public Basic<bool> PublishToGallery(string galleryItemId, string title, string topicId = null, bool? bypassTerms = null, bool? mature = null) { if (string.IsNullOrWhiteSpace(galleryItemId)) throw new ArgumentNullException(nameof(galleryItemId)); if (string.IsNullOrWhiteSpace(title)) throw new ArgumentNullException(nameof(title)); if (ApiClient.OAuth2Token == null) throw new ArgumentNullException(nameof(ApiClient.OAuth2Token), OAuth2RequiredExceptionMessage); var url = $"gallery/{galleryItemId}"; using (var request = GalleryRequestBuilder.PublishToGalleryRequest(url, title, topicId, bypassTerms, mature)) { var httpResponse = HttpClient.SendAsync(request).Result; var jsonString = httpResponse.Content.ReadAsStringAsync().Result; var output = Newtonsoft.Json.JsonConvert.DeserializeObject<Basic<bool>>(httpResponse.Content.ReadAsStringAsync().Result.ToString()); return output; } }