Skip to content

Commit

Permalink
Refatora Namespaces
Browse files Browse the repository at this point in the history
  • Loading branch information
RafaelEstevamReis committed Dec 7, 2023
1 parent 1f9c10f commit decce45
Show file tree
Hide file tree
Showing 5 changed files with 352 additions and 357 deletions.
45 changes: 22 additions & 23 deletions Sicoob.Cobranca/SicoobCobranca.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,36 @@
* Autor: Rafael Estevam *
* gh/SharpSistemas/SicoobAPI *
\**************************************/
namespace Sicoob.Cobranca;

using Sicoob.Shared.Models.Acesso;
using Simple.API;
using System.Net.Http;

namespace Sicoob.Cobranca
public sealed class SicoobCobranca : Shared.Sicoob
{
public sealed class SicoobCobranca : Shared.Sicoob
{
// Documentações
// > APIs tipo "Swagger":
// https://developers.sicoob.com.br/#!/apis

private ClientInfo clientApi;
public Shared.Models.ConfiguracaoAPI ConfigApi { get; }
// Documentações
// > APIs tipo "Swagger":
// https://developers.sicoob.com.br/#!/apis

public SicoobCobranca(Shared.Models.ConfiguracaoAPI configApi)
: base(configApi)
{
ConfigApi = configApi;
}
private ClientInfo clientApi;
public Shared.Models.ConfiguracaoAPI ConfigApi { get; }

protected override void setupClients(HttpClientHandler handler)
{
clientApi = new ClientInfo(ConfigApi.UrlApi, handler);
clientApi.SetHeader("x-sicoob-clientid", ConfigApi.ClientId);
}
public SicoobCobranca(Shared.Models.ConfiguracaoAPI configApi)
: base(configApi)
{
ConfigApi = configApi;
}

protected override void atualizaClients(TokenResponse token)
{
clientApi.SetAuthorizationBearer(token.access_token);
}
protected override void setupClients(HttpClientHandler handler)
{
clientApi = new ClientInfo(ConfigApi.UrlApi, handler);
clientApi.SetHeader("x-sicoob-clientid", ConfigApi.ClientId);
}

protected override void atualizaClients(TokenResponse token)
{
clientApi.SetAuthorizationBearer(token.access_token);
}

}
93 changes: 46 additions & 47 deletions Sicoob.Conta/SicoobContaCorrente.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,66 +3,65 @@
* Autor: Rafael Estevam *
* gh/SharpSistemas/SicoobAPI *
\**************************************/
namespace Sicoob.Conta;

using Sicoob.Conta.Models;
using Sicoob.Shared.Models.Acesso;
using Simple.API;
using System.Net.Http;
using System.Threading.Tasks;

namespace Sicoob.Conta
public sealed class SicoobContaCorrente : Shared.Sicoob
{
public sealed class SicoobContaCorrente : Shared.Sicoob
{
// Documentações
// > APIs tipo "Swagger":
// https://developers.sicoob.com.br/#!/apis
// Documentações
// > APIs tipo "Swagger":
// https://developers.sicoob.com.br/#!/apis

private ClientInfo clientApi;
public Shared.Models.ConfiguracaoAPI ConfigApi { get; }
private ClientInfo clientApi;
public Shared.Models.ConfiguracaoAPI ConfigApi { get; }

public SicoobContaCorrente(Shared.Models.ConfiguracaoAPI configApi, System.Security.Cryptography.X509Certificates.X509Certificate2? certificado = null)
: base(configApi, certificado)
{
ConfigApi = configApi;
}
public SicoobContaCorrente(Shared.Models.ConfiguracaoAPI configApi, System.Security.Cryptography.X509Certificates.X509Certificate2? certificado = null)

Check warning on line 23 in Sicoob.Conta/SicoobContaCorrente.cs

View workflow job for this annotation

GitHub Actions / build

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 23 in Sicoob.Conta/SicoobContaCorrente.cs

View workflow job for this annotation

GitHub Actions / build

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
: base(configApi, certificado)
{
ConfigApi = configApi;
}

protected override void setupClients(HttpClientHandler handler)
{
clientApi = new ClientInfo(ConfigApi.UrlApi, handler);
clientApi.SetHeader("x-sicoob-clientid", ConfigApi.ClientId);
protected override void setupClients(HttpClientHandler handler)
{
clientApi = new ClientInfo(ConfigApi.UrlApi, handler);
clientApi.SetHeader("x-sicoob-clientid", ConfigApi.ClientId);

#if DEBUG
enableDebug(clientApi);
enableDebug(clientApi);
#endif
}
protected override void atualizaClients(TokenResponse token)
{
clientApi.SetAuthorizationBearer(token.id_token);
}
}
protected override void atualizaClients(TokenResponse token)
{
clientApi.SetAuthorizationBearer(token.id_token);
}

/// <summary>
/// O recurso de Saldo retorna o valor disponível atual e o limite de crédito (cheque especial) de uma conta corrente.
/// </summary>
public async Task<ResultadoResponse<SaldoResponse>> ObterSaldoAsync()
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<ResultadoResponse<SaldoResponse>>("/conta-corrente/v2/saldo"));
/// <summary>
/// O recurso de Saldo retorna o valor disponível atual e o limite de crédito (cheque especial) de uma conta corrente.
/// </summary>
public async Task<ResultadoResponse<SaldoResponse>> ObterSaldoAsync(string numeroContaCorrente)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<ResultadoResponse<SaldoResponse>>("/conta-corrente/v2/saldo", new { numeroContaCorrente }));
/// <summary>
/// O recurso de Extrato retorna todas as transações ocorridas em uma conta corrente no devido mês e ano.
/// Há um limite de 3 meses
/// </summary>
public async Task<ResultadoResponse<ExtratoResponse>> ObterExtratoAsync(int mes, int ano)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<ResultadoResponse<ExtratoResponse>>($"/conta-corrente/v2/extrato/{mes}/{ano}"));
/// <summary>
/// O recurso de Extrato retorna todas as transações ocorridas em uma conta corrente no devido mês e ano.
/// Há um limite de 3 meses
/// </summary>
public async Task<ResultadoResponse<ExtratoResponse>> ObterExtratoAsync(int mes, int ano, string numeroContaCorrente)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<ResultadoResponse<ExtratoResponse>>($"/conta-corrente/v2/extrato/{mes}/{ano}", new { numeroContaCorrente }));
/// <summary>
/// O recurso de Saldo retorna o valor disponível atual e o limite de crédito (cheque especial) de uma conta corrente.
/// </summary>
public async Task<ResultadoResponse<SaldoResponse>> ObterSaldoAsync()
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<ResultadoResponse<SaldoResponse>>("/conta-corrente/v2/saldo"));
/// <summary>
/// O recurso de Saldo retorna o valor disponível atual e o limite de crédito (cheque especial) de uma conta corrente.
/// </summary>
public async Task<ResultadoResponse<SaldoResponse>> ObterSaldoAsync(string numeroContaCorrente)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<ResultadoResponse<SaldoResponse>>("/conta-corrente/v2/saldo", new { numeroContaCorrente }));

/// <summary>
/// O recurso de Extrato retorna todas as transações ocorridas em uma conta corrente no devido mês e ano.
/// Há um limite de 3 meses
/// </summary>
public async Task<ResultadoResponse<ExtratoResponse>> ObterExtratoAsync(int mes, int ano)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<ResultadoResponse<ExtratoResponse>>($"/conta-corrente/v2/extrato/{mes}/{ano}"));
/// <summary>
/// O recurso de Extrato retorna todas as transações ocorridas em uma conta corrente no devido mês e ano.
/// Há um limite de 3 meses
/// </summary>
public async Task<ResultadoResponse<ExtratoResponse>> ObterExtratoAsync(int mes, int ano, string numeroContaCorrente)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<ResultadoResponse<ExtratoResponse>>($"/conta-corrente/v2/extrato/{mes}/{ano}", new { numeroContaCorrente }));

}
}
75 changes: 37 additions & 38 deletions Sicoob.Conta/SicoobContaPoupanca.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,53 +3,52 @@
* Autor: Rafael Estevam *
* gh/SharpSistemas/SicoobAPI *
\**************************************/
namespace Sicoob.Conta;

using Sicoob.Shared.Models.Acesso;
using Simple.API;
using System.Net.Http;
using System.Threading.Tasks;

namespace Sicoob.Conta
public sealed class SicoobContaPoupanca : Shared.Sicoob
{
public sealed class SicoobContaPoupanca : Shared.Sicoob
{
// Documentações
// > APIs tipo "Swagger":
// https://developers.sicoob.com.br/#!/apis
// Documentações
// > APIs tipo "Swagger":
// https://developers.sicoob.com.br/#!/apis

private ClientInfo clientApi;
public Shared.Models.ConfiguracaoAPI ConfigApi { get; }
private ClientInfo clientApi;
public Shared.Models.ConfiguracaoAPI ConfigApi { get; }

public SicoobContaPoupanca(Shared.Models.ConfiguracaoAPI configApi, System.Security.Cryptography.X509Certificates.X509Certificate2? certificado = null)
: base(configApi, certificado)
{
ConfigApi = configApi;
}
public SicoobContaPoupanca(Shared.Models.ConfiguracaoAPI configApi, System.Security.Cryptography.X509Certificates.X509Certificate2? certificado = null)

Check warning on line 22 in Sicoob.Conta/SicoobContaPoupanca.cs

View workflow job for this annotation

GitHub Actions / build

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 22 in Sicoob.Conta/SicoobContaPoupanca.cs

View workflow job for this annotation

GitHub Actions / build

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
: base(configApi, certificado)
{
ConfigApi = configApi;
}

protected override void setupClients(HttpClientHandler handler)
{
clientApi = new ClientInfo(ConfigApi.UrlApi, handler);
clientApi.SetHeader("x-sicoob-clientid", ConfigApi.ClientId);
}
protected override void atualizaClients(TokenResponse token)
{
clientApi.SetAuthorizationBearer(token.access_token);
}
protected override void setupClients(HttpClientHandler handler)
{
clientApi = new ClientInfo(ConfigApi.UrlApi, handler);
clientApi.SetHeader("x-sicoob-clientid", ConfigApi.ClientId);
}
protected override void atualizaClients(TokenResponse token)
{
clientApi.SetAuthorizationBearer(token.access_token);
}

/// <summary>
/// Pesquisa as contas de poupança que pertencem a um CPF ou CNPJ.
/// </summary>
public async Task<string> ListarContasAsync()
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<string>($"/poupanca/v1/contas"));
/// <summary>
/// Consulta o extrato de um mês e ano de uma conta poupança.
/// </summary>
public async Task<string> ObterSaldoAsync(string contaPoupanca)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<string>($"/poupanca/v1/contas/{contaPoupanca}/saldo"));
/// <summary>
/// Consulta o saldo atual de uma conta poupança.
/// </summary>
public async Task<string> ObterExtratoAsync(int mes, int ano, string contaPoupanca)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<string>($"/poupanca/v1/contas/{contaPoupanca}/extrato/{mes}/{ano}"));
/// <summary>
/// Pesquisa as contas de poupança que pertencem a um CPF ou CNPJ.
/// </summary>
public async Task<string> ListarContasAsync()
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<string>($"/poupanca/v1/contas"));
/// <summary>
/// Consulta o extrato de um mês e ano de uma conta poupança.
/// </summary>
public async Task<string> ObterSaldoAsync(string contaPoupanca)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<string>($"/poupanca/v1/contas/{contaPoupanca}/saldo"));
/// <summary>
/// Consulta o saldo atual de uma conta poupança.
/// </summary>
public async Task<string> ObterExtratoAsync(int mes, int ano, string contaPoupanca)
=> await ExecutaChamadaAsync(() => clientApi.GetAsync<string>($"/poupanca/v1/contas/{contaPoupanca}/extrato/{mes}/{ano}"));

}
}
63 changes: 31 additions & 32 deletions Sicoob.PIX/SicoobConsultaPayload.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,43 @@
* Autor: Rafael Estevam *
* gh/SharpSistemas/SicoobAPI *
\**************************************/
namespace Sicoob.PIX;

using Simple.API;
using System.Threading.Tasks;

namespace Sicoob.PIX
/// <summary>
/// Consulta os endpoints abertos (Sem autenticação)
/// </summary>
public class SicoobConsultaPayload
{
private readonly ClientInfo clientApi;
private readonly ClientInfo clientPix;
public SicoobConsultaPayload()
{
clientApi = new ClientInfo("https://api.sicoob.com.br/pix/api/v2/");
clientPix = new ClientInfo("https://pix.sicoob.com.br");
}
/// <summary>
/// Consulta os endpoints abertos (Sem autenticação)
/// Consulta um Location
/// </summary>
public class SicoobConsultaPayload
/// <returns>JWT contendo os dados do PIX</returns>
public async Task<string> ConsultaCobPayloadAsync(string urlAcessToken)
{
private readonly ClientInfo clientApi;
private readonly ClientInfo clientPix;
public SicoobConsultaPayload()
{
clientApi = new ClientInfo("https://api.sicoob.com.br/pix/api/v2/");
clientPix = new ClientInfo("https://pix.sicoob.com.br");
}
/// <summary>
/// Consulta um Location
/// </summary>
/// <returns>JWT contendo os dados do PIX</returns>
public async Task<string> ConsultaCobPayloadAsync(string urlAcessToken)
{
var response = await clientApi.GetAsync<string>(urlAcessToken);
response.EnsureSuccessStatusCode();
return response.Data;
}
/// <summary>
/// Consulta campo payloadURL do PIX
/// </summary>
/// <returns>JWT contendo os dados do PIX</returns>
public async Task<string> ConsultaPixPayloadUrlAsync(string url)
{
url = url.Substring(url.IndexOf("/") + 1);
var response = await clientPix.GetAsync<string>(url);
response.EnsureSuccessStatusCode();
return response.Data;
}

var response = await clientApi.GetAsync<string>(urlAcessToken);
response.EnsureSuccessStatusCode();
return response.Data;
}
/// <summary>
/// Consulta campo payloadURL do PIX
/// </summary>
/// <returns>JWT contendo os dados do PIX</returns>
public async Task<string> ConsultaPixPayloadUrlAsync(string url)
{
url = url.Substring(url.IndexOf("/") + 1);
var response = await clientPix.GetAsync<string>(url);
response.EnsureSuccessStatusCode();
return response.Data;
}

}
Loading

0 comments on commit decce45

Please sign in to comment.