// Copyright (c) 2020 Tudor Stanciu using Netmash.Extensions.Http; using System; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; using Tuitio.PublishedLanguage.Dto; using Tuitio.Wrapper.Constants; using Tuitio.Wrapper.Models; namespace Tuitio.Wrapper.Services { internal class TuitioService : ITuitioService { private const string _contentType = "application/json"; private readonly HttpClient _httpClient; public TuitioService(HttpClient httpClient, ServiceConfiguration configuration) { httpClient.BaseAddress = new Uri(configuration.BaseAddress); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_contentType)); _httpClient = httpClient; } public async Task> Login(string userName, string password) { var route = string.Format(ApiRoutes.AccountLogin, userName, password); var result = await _httpClient.ExecutePostRequest>(route); return result; } public async Task> Logout(string token) { var route = string.Format(ApiRoutes.AccountLogout, token); var result = await _httpClient.ExecutePostRequest>(route); return result; } public async Task> Authorize(string token) { var route = string.Format(ApiRoutes.Authorization, token); var result = await _httpClient.ExecutePostRequest>(route); return result; } } }