Skip to content

Commit

Permalink
Merge pull request #18 from guibranco/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
guibranco committed Mar 28, 2020
2 parents 10ec3f9 + 60761db commit 2f10461
Show file tree
Hide file tree
Showing 11 changed files with 126 additions and 155 deletions.
38 changes: 0 additions & 38 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

20 changes: 0 additions & 20 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

39 changes: 27 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,48 @@
# ViaCEP
The [ViaCEP](https://viacep.com.br) web service client for .NET projects

[![Build status](https://ci.appveyor.com/api/projects/status/9jnsy1e08jhyxl7j?svg=true)](https://ci.appveyor.com/project/guibranco/viacep)
[![ViaCEP NuGet Version](https://img.shields.io/nuget/v/ViaCEP.svg?style=flat)](https://www.nuget.org/packages/ViaCEP/)
[![ViaCEP NuGet Downloads](https://img.shields.io/nuget/dt/ViaCEP.svg?style=flat)](https://www.nuget.org/packages/ViaCEP/)
A .NET client wrapper for both .NET Core & .NET Framework projects of [Via CEP API](https://viacep.com.br)

![Via CEP](https://raw.githubusercontent.com/guibranco/viacep/master/logo.png)

## CI/CD

[![Build status](https://ci.appveyor.com/api/projects/status/9jnsy1e08jhyxl7j?svg=true)](https://ci.appveyor.com/project/guibranco/9jnsy1e08jhyxl7j)
[![SMSDev NuGet Version](https://img.shields.io/nuget/v/ViaCEP.svg?style=flat)](https://www.nuget.org/packages/ViaCEP/)
[![SMSDev NuGet Downloads](https://img.shields.io/nuget/dt/ViaCEP.svg?style=flat)](https://www.nuget.org/packages/ViaCEP/)
[![Github All Releases](https://img.shields.io/github/downloads/guibranco/ViaCEP/total.svg?style=flat)](https://github.com/guibranco/ViaCEP)
![Last release](https://img.shields.io/github/release-date/guibranco/viacep.svg?style=flat)
[![Last release](https://img.shields.io/github/release-date/guibranco/ViaCEP.svg?style=flat)](https://github.com/guibranco/ViaCEP)

## Code Quality

[![codecov](https://codecov.io/gh/guibranco/viacep/branch/master/graph/badge.svg)](https://codecov.io/gh/guibranco/viacep)
[![codecov](https://codecov.io/gh/guibranco/SMSDev/branch/master/graph/badge.svg)](https://codecov.io/gh/guibranco/SMSDev)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=alert_status)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=coverage)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)

[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=ncloc)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=sqale_index)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=security_rating)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=duplicated_lines_density)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)

<img src="https://raw.githubusercontent.com/guibranco/ViaCEP/master/logo.png" alt="ViaCEP" width="287" height="72">

The ViaCEP service is exclusive for Brazil! No zipcode data available for other countries (Feb/2019)!
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=security_rating)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=code_smells)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=bugs)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=guibranco_ViaCEP&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=guibranco_ViaCEP)

---

NuGet package: https://www.nuget.org/packages/ViaCEP

```
```ps
Install-Package ViaCEP
```

---

## Usage

The package has two classes:

- [ViaCEPClient](https://github.com/guibranco/ViaCEP/blob/master/ViaCEP/ViaCEPClient.cs) - The main class (methods)
- [ViaCEPResult](https://github.com/guibranco/ViaCEP/blob/master/ViaCEP/VIaCEPResult.cs) - The result class (data)

Expand All @@ -42,6 +56,7 @@ var address = result.Address;
var neighborhood = result.Neighborhood
//do what you need with 'result' instance of ViaCEPResult.
```

## Querying by address (list result)

```cs
Expand Down
19 changes: 9 additions & 10 deletions ViaCEP/VIaCEPResult.cs → Src/ViaCEP/VIaCEPResult.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
namespace ViaCEP
{
using Newtonsoft.Json;
using System;

/// <summary>
/// The Via CEP result class.
Expand All @@ -15,7 +14,7 @@ public sealed class ViaCEPResult
/// The zip code.
/// </value>
[JsonProperty("cep")]
public String ZipCode { get; set; }
public string ZipCode { get; set; }

/// <summary>
/// Gets or sets the street.
Expand All @@ -24,7 +23,7 @@ public sealed class ViaCEPResult
/// The street.
/// </value>
[JsonProperty("logradouro")]
public String Street { get; set; }
public string Street { get; set; }

/// <summary>
/// Gets or sets the complement.
Expand All @@ -33,7 +32,7 @@ public sealed class ViaCEPResult
/// The complement.
/// </value>
[JsonProperty("complemento")]
public String Complement { get; set; }
public string Complement { get; set; }

/// <summary>
/// Gets or sets the neighborhood.
Expand All @@ -42,7 +41,7 @@ public sealed class ViaCEPResult
/// The neighborhood.
/// </value>
[JsonProperty("bairro")]
public String Neighborhood { get; set; }
public string Neighborhood { get; set; }

/// <summary>
/// Gets or sets the city.
Expand All @@ -51,7 +50,7 @@ public sealed class ViaCEPResult
/// The city.
/// </value>
[JsonProperty("localidade")]
public String City { get; set; }
public string City { get; set; }

/// <summary>
/// Gets or sets the state initials.
Expand All @@ -60,7 +59,7 @@ public sealed class ViaCEPResult
/// The state initials.
/// </value>
[JsonProperty("uf")]
public String StateInitials { get; set; }
public string StateInitials { get; set; }

/// <summary>
/// Gets or sets the unit.
Expand All @@ -69,7 +68,7 @@ public sealed class ViaCEPResult
/// The unit.
/// </value>
[JsonProperty("unidade")]
public String Unit { get; set; }
public string Unit { get; set; }

/// <summary>
/// Gets or sets the ibge code.
Expand All @@ -78,7 +77,7 @@ public sealed class ViaCEPResult
/// The ibge code.
/// </value>
[JsonProperty("ibge")]
public Int32 IBGECode { get; set; }
public int IBGECode { get; set; }

/// <summary>
/// Gets or sets the gia code.
Expand All @@ -87,6 +86,6 @@ public sealed class ViaCEPResult
/// The gia code.
/// </value>
[JsonProperty("gia")]
public Int32? GIACode { get; set; }
public int? GIACode { get; set; }
}
}
2 changes: 1 addition & 1 deletion ViaCEP/ViaCEP.csproj → Src/ViaCEP/ViaCEP.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="5.2.7" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.1" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup>
</Project>
15 changes: 7 additions & 8 deletions ViaCEP/ViaCEPClient.cs → Src/ViaCEP/ViaCEPClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,18 @@ public static class ViaCEPClient
/// <summary>
/// The base URL
/// </summary>
private const String BaseUrl = "https://viacep.com.br";
private const string BaseUrl = "https://viacep.com.br";

#endregion


#region Public methods

/// <summary>
/// Searches the specified zip code.
/// </summary>
/// <param name="zipCode">The zip code.</param>
/// <returns></returns>
public static ViaCEPResult Search(String zipCode)
public static ViaCEPResult Search(string zipCode)
{
return SearchAsync(zipCode, CancellationToken.None).Result;
}
Expand All @@ -39,7 +38,7 @@ public static ViaCEPResult Search(String zipCode)
/// <param name="zipCode">The zip code.</param>
/// <param name="token">The token.</param>
/// <returns></returns>
public static async Task<ViaCEPResult> SearchAsync(String zipCode, CancellationToken token)
public static async Task<ViaCEPResult> SearchAsync(string zipCode, CancellationToken token)
{
using (var client = new HttpClient())
{
Expand All @@ -57,7 +56,7 @@ public static async Task<ViaCEPResult> SearchAsync(String zipCode, CancellationT
/// <param name="city">The city.</param>
/// <param name="address">The address.</param>
/// <returns></returns>
public static IEnumerable<ViaCEPResult> Search(String stateInitials, String city, String address)
public static IEnumerable<ViaCEPResult> Search(string stateInitials, string city, string address)
{
return SearchAsync(stateInitials, city, address, CancellationToken.None).Result;
}
Expand All @@ -71,9 +70,9 @@ public static IEnumerable<ViaCEPResult> Search(String stateInitials, String city
/// <param name="token">The token.</param>
/// <returns></returns>
public static async Task<IEnumerable<ViaCEPResult>> SearchAsync(
String stateInitials,
String city,
String address,
string stateInitials,
string city,
string address,
CancellationToken token)
{
using (var client = new HttpClient())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,10 @@ public void ValidateSearchByFullAddress()
var list = result.ToList();
Assert.True(list.Any());
Assert.Contains(list, r => r.ZipCode.Equals("01310-905", StringComparison.InvariantCultureIgnoreCase));
Assert.Contains(list, r => r.ZipCode.Equals("01310-923", StringComparison.InvariantCultureIgnoreCase));
Assert.Contains(list, r => r.ZipCode.Equals("01311-941", StringComparison.InvariantCultureIgnoreCase));
var first = list.First();
Assert.Equal("SP", first.StateInitials);
Assert.Equal("São Paulo", first.City);

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,20 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="coverlet.msbuild" Version="2.5.1">
<PackageReference Include="coverlet.msbuild" Version="2.8.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\ViaCEP\ViaCEP.csproj" />
<ProjectReference Include="..\..\Src\ViaCEP\ViaCEP.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@ public void ValidateSearchByZipCode()
Assert.Equal("Quarta Parada", result.Neighborhood);
Assert.Equal("São Paulo", result.City);
Assert.Equal("SP", result.StateInitials);
}


}

/// <summary>
/// Validates if the search by zip code don't throw a exception if the address doesn't have a gia code
/// </summary>
Expand Down
Loading

0 comments on commit 2f10461

Please sign in to comment.