42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
|
// Copyright (c) 2020 Tudor Stanciu
|
|||
|
|
|||
|
using Tuitio.PublishedLanguage.Dto;
|
|||
|
using Tuitio.Wrapper.Constants;
|
|||
|
using Tuitio.Wrapper.Models;
|
|||
|
using Netmash.Extensions.Http;
|
|||
|
using System;
|
|||
|
using System.Net.Http;
|
|||
|
using System.Net.Http.Headers;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
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<Token> Authenticate(string userName, string password)
|
|||
|
{
|
|||
|
var route = string.Format(ApiRoutes.Authentication, userName, password);
|
|||
|
var result = await _httpClient.ExecutePostRequest<Token>(route);
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
public async Task<TokenAuthorizationResult> Authorize(string token)
|
|||
|
{
|
|||
|
var route = string.Format(ApiRoutes.Authorization, token);
|
|||
|
var result = await _httpClient.ExecutePostRequest<TokenAuthorizationResult>(route);
|
|||
|
return result;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|