public async Task <WebPageResponse> GetWebPage(string rawAnnotatableUrl, string canonicalUrl = null, string ogUrl = null) { var endpoint = "/web_pages/lookup?raw_annotatable_url=" + rawAnnotatableUrl; if (!string.IsNullOrWhiteSpace(canonicalUrl)) { endpoint += "&canonical_url=" + canonicalUrl; } if (!string.IsNullOrWhiteSpace(ogUrl)) { endpoint += "&og_url=" + ogUrl; } var response = await _geniusRestClient.GetASync(endpoint); using (var input = new StringReader(response)) { var webPageResponse = JSON.Deserialize <WebPageResponse>(input); if (webPageResponse.Meta.Status >= 400) { throw new HttpRequestException(webPageResponse.Meta.Status + webPageResponse.Meta.Message); } return(webPageResponse); } }
public async Task <ArtistResponse> GetArtist(ulong artistId) { var response = await _geniusRestClient.GetASync("/artists/" + artistId + "?text_format=html"); using (var input = new StringReader(response)) { var artistResponse = JSON.Deserialize <ArtistResponse>(input); if (artistResponse.Meta.Status >= 400) { throw new HttpRequestException(artistResponse.Meta.Status + artistResponse.Meta.Message); } return(artistResponse); } }
public async Task <AccountResponse> GetAccount() { var response = await _geniusRestClient.GetASync("/account?text_format=html"); using (var input = new StringReader(response)) { return(JSON.Deserialize <AccountResponse>(input)); } }
public async Task <ReferentResponse> GetReferent(string createdById = null, string songId = null, string webPageId = null, string perPage = null, string page = null) { var urlParameters = ""; if (!string.IsNullOrWhiteSpace(songId) && !string.IsNullOrWhiteSpace(webPageId)) { throw new ArgumentException("You may pass only one of songId and webPageId, not both."); } if (string.IsNullOrWhiteSpace(songId)) { urlParameters += "web_page_id=" + webPageId; } else { urlParameters += "song_id=" + songId; } if (!string.IsNullOrWhiteSpace(createdById)) { urlParameters += "&created_by_id=" + createdById; } if (!string.IsNullOrWhiteSpace(perPage)) { urlParameters += "&per_page=" + perPage; } if (!string.IsNullOrWhiteSpace(page)) { urlParameters += "&page=" + page; } var response = await _geniusRestClient.GetASync("/referents?" + urlParameters); using (var input = new StringReader(response)) { var annotationResponse = JSON.Deserialize <ReferentResponse>(input); if (annotationResponse.Meta.Status >= 400) { throw new HttpRequestException(annotationResponse.Meta.Status + annotationResponse.Meta.Message); } return(annotationResponse); } }
public async Task <SearchResponse> Search(string query) { var response = await _geniusRestClient.GetASync("/search?q=/" + query); using (var input = new StringReader(response)) { var searchResponse = JSON.Deserialize <SearchResponse>(input); if (searchResponse.Meta.Status >= 400) { throw new HttpRequestException(searchResponse.Meta.Status + searchResponse.Meta.Message); } return(searchResponse); } }