private async Task <PagedApiResponse <IEnumerable <T> > > GetPagedAsync <T>(string path, RequestOptions options = null) { path = PathBuilder.BuildPath(path, options); using (var response = await Client.GetAsync(path).Configured()) { var content = await response.Content.ReadAsStringAsync().Configured(); return(JsonConvert.DeserializeObject <PagedApiResponse <IEnumerable <T> > >(content)); } }
private async Task <T> GetAsync <T>(string path, RequestOptions options = null) { path = PathBuilder.BuildPath(path, options); using (var response = await Client.GetAsync(path).Configured()) { var content = await response.Content.ReadAsAsync <dynamic>().Configured(); return(JsonConvert.DeserializeObject <T>(content.data.ToString())); } }
private async Task <dynamic> PostAsyncInternal(string path, object value, RequestOptions options = null) { path = PathBuilder.BuildPath(path, options); using (var response = await Client.PostAsync(path, value).ConfigureAwait(false)) { UpdateRateLimits(response.Headers); if (!response.IsSuccessStatusCode) { throw await CreateException(response).ConfigureAwait(false); } return(await response.Content.ReadAsAsync <dynamic>().ConfigureAwait(false)); } }
private async Task <T> PatchAsync <T>(string path, object value, RequestOptions options = null) { path = PathBuilder.BuildPath(path, options); using (var response = await Client.PatchAsync(path, value).ConfigureAwait(false)) { UpdateRateLimits(response.Headers); if (!response.IsSuccessStatusCode) { throw await CreateException(response).ConfigureAwait(false); } var content = await response.Content.ReadAsAsync <dynamic>().ConfigureAwait(false); return(JsonConvert.DeserializeObject <T>(content.data.ToString())); } }
// TODO: NOTE: Returns null if not found (404) private async Task <PagedApiResponse <IEnumerable <T> > > GetPagedAsync <T>(string path, RequestOptions options = null) { path = PathBuilder.BuildPath(path, options); using (var response = await Client.GetAsync(path).ConfigureAwait(false)) { UpdateRateLimits(response.Headers); if (response.StatusCode == HttpStatusCode.NotFound) { return(null); } if (!response.IsSuccessStatusCode) { throw await CreateException(response).ConfigureAwait(false); } var content = await response.Content.ReadAsStringAsync().ConfigureAwait(false); return(JsonConvert.DeserializeObject <PagedApiResponse <IEnumerable <T> > >(content)); } }
private async Task <dynamic> PostAsyncInternal(string path, object value, RequestOptions options = null) { path = PathBuilder.BuildPath(path, options); using (var response = await Client.PostAsync(path, value).Configured()) { if (!response.IsSuccessStatusCode) { var error = await response.Content.ReadAsAsync <dynamic>().Configured(); if (error.type == "api") { throw new PinterestApiException(error.message.ToString()) { Type = error.type, Param = error.param } } ; response.EnsureSuccessStatusCode(); } return(await response.Content.ReadAsAsync <dynamic>().Configured()); } }