public async Task <ImageQueryViewModel> GetImageQuery(int id, string keyType, string token, string resolution = "", string subKey = "") { var client = TheTvDbHttpClient.GetClient(); var parametersToAdd = new System.Collections.Generic.Dictionary <string, string>(); if (!string.IsNullOrEmpty(keyType)) { parametersToAdd.Add("keyType", keyType); } if (!string.IsNullOrEmpty(resolution)) { parametersToAdd.Add("resolution", resolution); } if (!string.IsNullOrEmpty(subKey)) { parametersToAdd.Add("subKey", subKey); } var queryUrl = $"/series/{id}/images/query"; var queryUrlWithParameters = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(queryUrl, parametersToAdd); var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage(queryUrlWithParameters, token)); var result = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <ImageQueryViewModel>(result)); }
public async Task <SearchResponse> GetSearch(string token, string name = "", string imdbId = "", string zap2ItId = "") { var client = TheTvDbHttpClient.GetClient(); var parametersToAdd = new System.Collections.Generic.Dictionary <string, string>(); if (!string.IsNullOrEmpty(name)) { parametersToAdd.Add("name", name); } if (!string.IsNullOrEmpty(imdbId)) { parametersToAdd.Add("imdbId", imdbId); } if (!string.IsNullOrEmpty(zap2ItId)) { parametersToAdd.Add("zap2ItId", zap2ItId); } var queryUrl = $"/search/series"; var queryUrlWithParameters = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(queryUrl, parametersToAdd); var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage(queryUrlWithParameters, token)); var result = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <SearchResponse>(result)); }
public async Task <TokenResponse> RefreshToken(string token) { var client = TheTvDbHttpClient.GetClient(); var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage($"/refresh_token", token)); var result = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { _logger.LogError($"[{response.StatusCode}] {result}"); return(new TokenResponse() { Error = $"Error {response.StatusCode}" }); } var tokenResponse = JsonConvert.DeserializeObject <TokenResponse>(result); var securityTokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler(); var jwtToken = securityTokenHandler.ReadJwtToken(tokenResponse.Token); tokenResponse.Expire = jwtToken.Payload.Exp; return(tokenResponse); }
public async Task <TokenResponse> Login(string apikey, string username = "", string userkey = "") { var client = TheTvDbHttpClient.GetClient(); var request = new { apikey, username, userkey }; var response = await client.PostAsJsonAsync("/login", request); var result = await response.Content.ReadAsStringAsync(); if (!response.IsSuccessStatusCode) { _logger.LogError($"[{response.StatusCode}] {result}"); return(new TokenResponse() { Error = $"Error {response.StatusCode}" }); } var tokenResponse = JsonConvert.DeserializeObject <TokenResponse>(result); var securityTokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler(); var jwtToken = securityTokenHandler.ReadJwtToken(tokenResponse.Token); tokenResponse.Expire = jwtToken.Payload.Exp; return(tokenResponse); }
public async Task <SerieResponse> GetById(int id, string token) { var client = TheTvDbHttpClient.GetClient(); var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage($"/series/{id}", token)); var result = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <SerieResponse>(result)); }
public async Task <ImageQueryParamsViewModel> GetImageQueryParams(int id, string token) { var client = TheTvDbHttpClient.GetClient(); var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage($"/series/{id}/images/query/params", token)); var result = await response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <ImageQueryParamsViewModel>(result)); }
//TODO: add support for paging public async Task <EpisodesResponse> GetEpisodesBySerieId(int id, string token, int page = 1) { var client = TheTvDbHttpClient.GetClient(); var parametersToAdd = new System.Collections.Generic.Dictionary <string, string>(); if (page != 1) { parametersToAdd.Add("page", page.ToString()); } var queryUrl = $"/series/{id}/episodes"; var queryUrlWithParameters = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(queryUrl, parametersToAdd); var response = await client.SendAsync(HttpClientHelper.GetHttpRequestMessage(queryUrlWithParameters, token)); var result = await response.Content.ReadAsStringAsync(); var parsedResult = JsonConvert.DeserializeObject <EpisodesResponse>(result); parsedResult.Links.Current = page; return(parsedResult); }