From 48686de53f110ffd00cec6f64cfc36f7feb37cd7 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 22:59:31 -0300 Subject: [PATCH 01/30] chore: update readme doc v1 --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..e29180e --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# Apigratis-sdk-java + +Apigratis-sdk-java é um SDK Java abrangente para acessar uma variedade de serviços de API, incluindo informações de contato, dados geolocalizados e muito mais. Este SDK está atualmente em construção e será continuamente atualizado com novas funcionalidades e melhorias. + +## Serviços de API Disponíveis + +Abaixo está uma lista dos serviços de API disponíveis através deste SDK: + +| Disponível | Serviço | Descrição | Gratuito | Beta | Estável | +|------------|---------------------|---------------------------------------|----------|------|---------| +| ⌛ | WhatsAppService | API do WhatsApp Gratuita. | ⌛ | ⌛ | ⌛ | +| ⌛ | Receita Data CNPJ | API Dados CNPJ Receita. | ⌛ | ⌛ | ⌛ | +| ⌛ | Receita Data CPF | API Dados de CPF Serasa. | ⌛ | ⌛ | ⌛ | +| ⌛ | CorreiosService | API Busca encomendas Correios Brazil. | ⌛ | ⌛ | ⌛ | +| ⌛ | CEPLocation | API CEP Geolocation + IBGE Brazil. | ⌛ | ⌛ | ⌛ | +| ⌛ | VehiclesService | API Placa Dados. | ⌛ | ⌛ | ⌛ | +| ⌛ | FipeService | API Placa FIPE. | ⌛ | ⌛ | ⌛ | + +## Status do Projeto + +🚧 **Todos os módulos deste SDK estão atualmente em construção.** 🚧 + +Estamos trabalhando ativamente para expandir as funcionalidades deste SDK e garantir uma cobertura abrangente e eficiente dos serviços listados acima. A documentação será atualizada regularmente para refletir as novidades e mudanças no SDK. + +## Contribuições + +Contribuições para este projeto são bem-vindas! Se você tiver sugestões ou quiser contribuir com o desenvolvimento, sinta-se à vontade para abrir um pull request ou uma issue no repositório do GitHub. + From 5ca984359d70d36b5e3f6a4f3d4976b5723d86f7 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:07:03 -0300 Subject: [PATCH 02/30] feat: create a login request dto --- .../java/com/apibrasil/sdk/dto/login/LoginRequest.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/login/LoginRequest.java diff --git a/src/main/java/com/apibrasil/sdk/dto/login/LoginRequest.java b/src/main/java/com/apibrasil/sdk/dto/login/LoginRequest.java new file mode 100644 index 0000000..80a82fd --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/login/LoginRequest.java @@ -0,0 +1,9 @@ +package com.apibrasil.sdk.dto.login; + +import lombok.Data; + +@Data +public class LoginRequest { + private String email; + private String password; +} From 8fe532aca918da47e7cf451fca580f6507de4fe0 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:10:37 -0300 Subject: [PATCH 03/30] feat: create a base login client to use login method --- .../sdk/client/login/LoginClient.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/client/login/LoginClient.java diff --git a/src/main/java/com/apibrasil/sdk/client/login/LoginClient.java b/src/main/java/com/apibrasil/sdk/client/login/LoginClient.java new file mode 100644 index 0000000..b7604ac --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/client/login/LoginClient.java @@ -0,0 +1,19 @@ +package com.apibrasil.sdk.client.login; + +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.client.base.BaseApiClient; +import com.apibrasil.sdk.dto.login.LoginRequest; +import com.apibrasil.sdk.dto.login.LoginResponse; +import com.apibrasil.sdk.exception.ApiException; + +public class LoginClient extends BaseApiClient { + private static final String ENDPOINT = "https://cluster.apigratis.com/api/v2/login"; + + public LoginClient(ApiClient apiClient) { + super(apiClient); + } + + public LoginResponse login(LoginRequest request) throws ApiException { + return executePost(ENDPOINT, request, LoginResponse.class); + } +} From 322f32b794ed081f7fbb6f18f38a625189754ad2 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:21:24 -0300 Subject: [PATCH 04/30] fix: rename classes and files to follow the portuguese pattern --- .../java/com/apibrasil/sdk/client/login/LoginClient.java | 8 ++++---- .../sdk/dto/cep/{CepRequest.java => CepReq.java} | 2 +- .../sdk/dto/cep/{CepResponse.java => CepRes.java} | 2 +- .../{CidadesDDDRequest.java => CidadesDDDReq.java} | 2 +- .../cidades/{CidadesResponse.java => CidadesDDDRes.java} | 3 ++- .../dto/cidades/{CidadesRequest.java => CidadesReq.java} | 2 +- .../cidades/{CidadesDDDResponse.java => CidadesRes.java} | 3 +-- .../dto/estados/{EstadosRequest.java => EstadosReq.java} | 2 +- .../dto/estados/{EstadosResponse.java => EstadosRes.java} | 2 +- .../sdk/dto/login/{LoginRequest.java => LoginReq.java} | 2 +- .../sdk/dto/login/{LoginResponse.java => LoginRes.java} | 2 +- 11 files changed, 15 insertions(+), 15 deletions(-) rename src/main/java/com/apibrasil/sdk/dto/cep/{CepRequest.java => CepReq.java} (77%) rename src/main/java/com/apibrasil/sdk/dto/cep/{CepResponse.java => CepRes.java} (58%) rename src/main/java/com/apibrasil/sdk/dto/cidades/{CidadesDDDRequest.java => CidadesDDDReq.java} (73%) rename src/main/java/com/apibrasil/sdk/dto/cidades/{CidadesResponse.java => CidadesDDDRes.java} (93%) rename src/main/java/com/apibrasil/sdk/dto/cidades/{CidadesRequest.java => CidadesReq.java} (75%) rename src/main/java/com/apibrasil/sdk/dto/cidades/{CidadesDDDResponse.java => CidadesRes.java} (92%) rename src/main/java/com/apibrasil/sdk/dto/estados/{EstadosRequest.java => EstadosReq.java} (75%) rename src/main/java/com/apibrasil/sdk/dto/estados/{EstadosResponse.java => EstadosRes.java} (93%) rename src/main/java/com/apibrasil/sdk/dto/login/{LoginRequest.java => LoginReq.java} (81%) rename src/main/java/com/apibrasil/sdk/dto/login/{LoginResponse.java => LoginRes.java} (98%) diff --git a/src/main/java/com/apibrasil/sdk/client/login/LoginClient.java b/src/main/java/com/apibrasil/sdk/client/login/LoginClient.java index b7604ac..fd5927b 100644 --- a/src/main/java/com/apibrasil/sdk/client/login/LoginClient.java +++ b/src/main/java/com/apibrasil/sdk/client/login/LoginClient.java @@ -2,8 +2,8 @@ import com.apibrasil.sdk.client.base.ApiClient; import com.apibrasil.sdk.client.base.BaseApiClient; -import com.apibrasil.sdk.dto.login.LoginRequest; -import com.apibrasil.sdk.dto.login.LoginResponse; +import com.apibrasil.sdk.dto.login.LoginReq; +import com.apibrasil.sdk.dto.login.LoginRes; import com.apibrasil.sdk.exception.ApiException; public class LoginClient extends BaseApiClient { @@ -13,7 +13,7 @@ public LoginClient(ApiClient apiClient) { super(apiClient); } - public LoginResponse login(LoginRequest request) throws ApiException { - return executePost(ENDPOINT, request, LoginResponse.class); + public LoginRes login(LoginReq request) throws ApiException { + return executePost(ENDPOINT, request, LoginRes.class); } } diff --git a/src/main/java/com/apibrasil/sdk/dto/cep/CepRequest.java b/src/main/java/com/apibrasil/sdk/dto/cep/CepReq.java similarity index 77% rename from src/main/java/com/apibrasil/sdk/dto/cep/CepRequest.java rename to src/main/java/com/apibrasil/sdk/dto/cep/CepReq.java index 7bc4bfa..66d01ff 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cep/CepRequest.java +++ b/src/main/java/com/apibrasil/sdk/dto/cep/CepReq.java @@ -3,6 +3,6 @@ import lombok.Data; @Data -public class CepRequest { +public class CepReq { private String cep; } \ No newline at end of file diff --git a/src/main/java/com/apibrasil/sdk/dto/cep/CepResponse.java b/src/main/java/com/apibrasil/sdk/dto/cep/CepRes.java similarity index 58% rename from src/main/java/com/apibrasil/sdk/dto/cep/CepResponse.java rename to src/main/java/com/apibrasil/sdk/dto/cep/CepRes.java index 2fd79f7..75aadf2 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cep/CepResponse.java +++ b/src/main/java/com/apibrasil/sdk/dto/cep/CepRes.java @@ -1,4 +1,4 @@ package com.apibrasil.sdk.dto.cep; -public class CepResponse { +public class CepRes { } diff --git a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRequest.java b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDReq.java similarity index 73% rename from src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRequest.java rename to src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDReq.java index dc45819..ac3028c 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRequest.java +++ b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDReq.java @@ -3,6 +3,6 @@ import lombok.Data; @Data -public class CidadesDDDRequest { +public class CidadesDDDReq { private String ddd; } \ No newline at end of file diff --git a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesResponse.java b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRes.java similarity index 93% rename from src/main/java/com/apibrasil/sdk/dto/cidades/CidadesResponse.java rename to src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRes.java index 8ba7f10..318c964 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesResponse.java +++ b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRes.java @@ -5,8 +5,9 @@ import java.util.List; + @Data -public class CidadesResponse { +public class CidadesDDDRes { private boolean error; private String message; private ResponseData response; diff --git a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRequest.java b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesReq.java similarity index 75% rename from src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRequest.java rename to src/main/java/com/apibrasil/sdk/dto/cidades/CidadesReq.java index fb6cfe2..645e11e 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRequest.java +++ b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesReq.java @@ -3,6 +3,6 @@ import lombok.Data; @Data -public class CidadesRequest { +public class CidadesReq { private String uf; } \ No newline at end of file diff --git a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDResponse.java b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRes.java similarity index 92% rename from src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDResponse.java rename to src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRes.java index 51aebde..4197f82 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDResponse.java +++ b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRes.java @@ -5,9 +5,8 @@ import java.util.List; - @Data -public class CidadesDDDResponse { +public class CidadesRes { private boolean error; private String message; private ResponseData response; diff --git a/src/main/java/com/apibrasil/sdk/dto/estados/EstadosRequest.java b/src/main/java/com/apibrasil/sdk/dto/estados/EstadosReq.java similarity index 75% rename from src/main/java/com/apibrasil/sdk/dto/estados/EstadosRequest.java rename to src/main/java/com/apibrasil/sdk/dto/estados/EstadosReq.java index 5a3828d..449c488 100644 --- a/src/main/java/com/apibrasil/sdk/dto/estados/EstadosRequest.java +++ b/src/main/java/com/apibrasil/sdk/dto/estados/EstadosReq.java @@ -3,6 +3,6 @@ import lombok.Data; @Data -public class EstadosRequest { +public class EstadosReq { private String pais; } diff --git a/src/main/java/com/apibrasil/sdk/dto/estados/EstadosResponse.java b/src/main/java/com/apibrasil/sdk/dto/estados/EstadosRes.java similarity index 93% rename from src/main/java/com/apibrasil/sdk/dto/estados/EstadosResponse.java rename to src/main/java/com/apibrasil/sdk/dto/estados/EstadosRes.java index 7d2120c..f15c826 100644 --- a/src/main/java/com/apibrasil/sdk/dto/estados/EstadosResponse.java +++ b/src/main/java/com/apibrasil/sdk/dto/estados/EstadosRes.java @@ -6,7 +6,7 @@ import java.util.List; @Data -public class EstadosResponse { +public class EstadosRes { private boolean error; private String message; private ResponseData response; diff --git a/src/main/java/com/apibrasil/sdk/dto/login/LoginRequest.java b/src/main/java/com/apibrasil/sdk/dto/login/LoginReq.java similarity index 81% rename from src/main/java/com/apibrasil/sdk/dto/login/LoginRequest.java rename to src/main/java/com/apibrasil/sdk/dto/login/LoginReq.java index 80a82fd..4d173a5 100644 --- a/src/main/java/com/apibrasil/sdk/dto/login/LoginRequest.java +++ b/src/main/java/com/apibrasil/sdk/dto/login/LoginReq.java @@ -3,7 +3,7 @@ import lombok.Data; @Data -public class LoginRequest { +public class LoginReq { private String email; private String password; } diff --git a/src/main/java/com/apibrasil/sdk/dto/login/LoginResponse.java b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java similarity index 98% rename from src/main/java/com/apibrasil/sdk/dto/login/LoginResponse.java rename to src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java index 6830477..5932e05 100644 --- a/src/main/java/com/apibrasil/sdk/dto/login/LoginResponse.java +++ b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java @@ -6,7 +6,7 @@ @Data -public class LoginResponse { +public class LoginRes { private boolean error; private String message; private User user; From 37b00579711da79d0f59eb1008df3627e8d49fe2 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:39:44 -0300 Subject: [PATCH 05/30] feat: create a user dto --- .../com/apibrasil/sdk/dto/base/user/User.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/user/User.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/user/User.java b/src/main/java/com/apibrasil/sdk/dto/base/user/User.java new file mode 100644 index 0000000..ec8d677 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/user/User.java @@ -0,0 +1,42 @@ +package com.apibrasil.sdk.dto.base.user; + +import com.apibrasil.sdk.dto.base.device.Device; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class User { + private String search; + private String cellphone; + private String email; + + @JsonProperty("first_name") + private String firstName; + + @JsonProperty("last_name") + private String lastName; + + private String status; + + @JsonProperty("status_finance") + private String statusFinance; + + @JsonProperty("devices_count") + private int devicesCount; + + @JsonProperty("invoices_open_count") + private int invoicesOpenCount; + + @JsonProperty("last_login_ip") + private String lastLoginIp; + + @JsonProperty("updated_at") + private String updatedAt; + + @JsonProperty("last_login_at") + private String lastLoginAt; + + private List devices; +} From de72dc8c04c18dabeb1e440951a1e23a5dd25b90 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:40:03 -0300 Subject: [PATCH 06/30] feat: create a devices dto --- .../apibrasil/sdk/dto/base/device/Device.java | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/device/Device.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/device/Device.java b/src/main/java/com/apibrasil/sdk/dto/base/device/Device.java new file mode 100644 index 0000000..087cc74 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/device/Device.java @@ -0,0 +1,42 @@ +package com.apibrasil.sdk.dto.base.device; + +import com.apibrasil.sdk.dto.base.info.ApiInfo; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class Device { + @JsonProperty("number_device") + private String numberDevice; + + private String search; + + @JsonProperty("server_search") + private String serverSearch; + + private String status; + + @JsonProperty("status_situation") + private String statusSituation; + + @JsonProperty("created_at") + private String createdAt; + + @JsonProperty("device_ip") + private String deviceIp; + + @JsonProperty("device_key") + private String deviceKey; + + @JsonProperty("device_name") + private String deviceName; + + @JsonProperty("device_token") + private String deviceToken; + + @JsonProperty("last_activity") + private String lastActivity; + + @JsonProperty("api_info") + private ApiInfo apiInfo; +} From 2443ef65d10e2838dd64766ba77d860fcb8274c1 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:40:18 -0300 Subject: [PATCH 07/30] feat: create a apiinfo dto --- .../java/com/apibrasil/sdk/dto/base/info/ApiInfo.java | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/info/ApiInfo.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/info/ApiInfo.java b/src/main/java/com/apibrasil/sdk/dto/base/info/ApiInfo.java new file mode 100644 index 0000000..6dff806 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/info/ApiInfo.java @@ -0,0 +1,10 @@ +package com.apibrasil.sdk.dto.base.info; + +import lombok.Data; + +@Data +public class ApiInfo { + private String description; + private String name; + private String search; +} \ No newline at end of file From 1b03ea6d7db478340470615b6a03f9a4b306e32b Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:40:33 -0300 Subject: [PATCH 08/30] feat: create an authorization dto --- .../sdk/dto/base/authorization/Authorization.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/authorization/Authorization.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/authorization/Authorization.java b/src/main/java/com/apibrasil/sdk/dto/base/authorization/Authorization.java new file mode 100644 index 0000000..cc87c74 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/authorization/Authorization.java @@ -0,0 +1,15 @@ +package com.apibrasil.sdk.dto.base.authorization; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class Authorization { + private String token; + + @JsonProperty("expires_in") + private long expiresIn; + + private String type; +} + From 529d20117358ce62664f6d047f7f61d1cc9c29e0 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:41:34 -0300 Subject: [PATCH 09/30] refactor: change the snake case pattern for camel case --- .../com/apibrasil/sdk/dto/login/LoginRes.java | 49 +------------------ 1 file changed, 2 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java index 5932e05..d366a52 100644 --- a/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java +++ b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java @@ -1,11 +1,12 @@ package com.apibrasil.sdk.dto.login; +import com.apibrasil.sdk.dto.base.authorization.Authorization; +import com.apibrasil.sdk.dto.base.user.User; import lombok.Data; import java.util.List; import java.util.Map; @Data - public class LoginRes { private boolean error; private String message; @@ -13,50 +14,4 @@ public class LoginRes { private List> invoices; private Authorization authorization; - @Data - public static class User { - private String search; - private String cellphone; - private String email; - private String first_name; - private String last_name; - private String status; - private String status_finance; - private int devices_count; - private int invoices_open_count; - private String last_login_ip; - private String updated_at; - private String last_login_at; - private List devices; - } - - @Data - public static class Device { - private String number_device; - private String search; - private String server_search; - private String status; - private String status_situation; - private String created_at; - private String device_ip; - private String device_key; - private String device_name; - private String device_token; - private String last_activity; - private ApiInfo apiInfo; - } - - @Data - public static class ApiInfo { - private String description; - private String name; - private String search; - } - - @Data - public static class Authorization { - private String token; - private long expires_in; - private String type; - } } \ No newline at end of file From 7bf55b77b0ac6560b84d18170d4ad8ad9435f2c4 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:44:08 -0300 Subject: [PATCH 10/30] fix: put the @jsonproperty on some properties --- src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java index d366a52..55f8d93 100644 --- a/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java +++ b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java @@ -2,6 +2,7 @@ import com.apibrasil.sdk.dto.base.authorization.Authorization; import com.apibrasil.sdk.dto.base.user.User; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; import java.util.Map; @@ -10,8 +11,11 @@ public class LoginRes { private boolean error; private String message; + @JsonProperty("user") private User user; + @JsonProperty("invoices") private List> invoices; + @JsonProperty("authorization") private Authorization authorization; } \ No newline at end of file From 68bf1a6ef9cbc5bf14a4967c4e9b90a7d6b6bfeb Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:45:57 -0300 Subject: [PATCH 11/30] fix: put the @jsonproperty on some properties --- .../com/apibrasil/sdk/dto/cidades/CidadesDDDRes.java | 10 +++++++--- .../java/com/apibrasil/sdk/dto/cidades/CidadesRes.java | 10 +++++++--- .../java/com/apibrasil/sdk/dto/estados/EstadosRes.java | 10 +++++++--- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRes.java b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRes.java index 318c964..7406713 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRes.java +++ b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesDDDRes.java @@ -1,6 +1,7 @@ package com.apibrasil.sdk.dto.cidades; import com.apibrasil.sdk.dto.base.cidade.Cidade; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @@ -11,9 +12,12 @@ public class CidadesDDDRes { private boolean error; private String message; private ResponseData response; - private int api_limit; - private String api_limit_for; - private int api_limit_used; + @JsonProperty("api_limit") + private int apiLimit; + @JsonProperty("api_limit_for") + private String apiLimitFor; + @JsonProperty("api_limit_used") + private int apiLimitUsed; @Data public static class ResponseData { diff --git a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRes.java b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRes.java index 4197f82..8fc1f23 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRes.java +++ b/src/main/java/com/apibrasil/sdk/dto/cidades/CidadesRes.java @@ -1,6 +1,7 @@ package com.apibrasil.sdk.dto.cidades; import com.apibrasil.sdk.dto.base.cidade.Cidade; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @@ -10,9 +11,12 @@ public class CidadesRes { private boolean error; private String message; private ResponseData response; - private int api_limit; - private String api_limit_for; - private int api_limit_used; + @JsonProperty("api_limit") + private int apiLimit; + @JsonProperty("api_limit_for") + private String apiLimitFor; + @JsonProperty("api_limit_used") + private int apiLimitUsed; @Data public static class ResponseData { diff --git a/src/main/java/com/apibrasil/sdk/dto/estados/EstadosRes.java b/src/main/java/com/apibrasil/sdk/dto/estados/EstadosRes.java index f15c826..4dc7aa2 100644 --- a/src/main/java/com/apibrasil/sdk/dto/estados/EstadosRes.java +++ b/src/main/java/com/apibrasil/sdk/dto/estados/EstadosRes.java @@ -1,6 +1,7 @@ package com.apibrasil.sdk.dto.estados; import com.apibrasil.sdk.dto.base.estado.Estado; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @@ -10,9 +11,12 @@ public class EstadosRes { private boolean error; private String message; private ResponseData response; - private int api_limit; - private String api_limit_for; - private int api_limit_used; + @JsonProperty("api_limit") + private int apiLimit; + @JsonProperty("api_limit_for") + private String apiLimitFor; + @JsonProperty("api_limit_used") + private int apiLimitUsed; @Data public static class ResponseData { From 513546bc8e460258c6190db8852653a90929876a Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:56:21 -0300 Subject: [PATCH 12/30] chore: add @getter to deviceToken and remove the default --- .../java/com/apibrasil/sdk/client/ApiClientImpl.java | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/main/java/com/apibrasil/sdk/client/ApiClientImpl.java b/src/main/java/com/apibrasil/sdk/client/ApiClientImpl.java index 30d1ed0..93c3088 100644 --- a/src/main/java/com/apibrasil/sdk/client/ApiClientImpl.java +++ b/src/main/java/com/apibrasil/sdk/client/ApiClientImpl.java @@ -23,6 +23,7 @@ public class ApiClientImpl implements ApiClient { @Setter private String authToken; + @Getter @Setter private String deviceToken; @@ -30,7 +31,6 @@ public ApiClientImpl() { this.httpClient = HttpClients.createDefault(); } - @Override public T executeApiCall(HttpUriRequest request, Class responseType) throws ApiException { try (CloseableHttpResponse response = httpClient.execute(request)) { @@ -40,13 +40,6 @@ public T executeApiCall(HttpUriRequest request, Class responseType) throw throw new ApiException("Erro ao executar a chamada à API", e); } } - - @Override - public String getDeviceToken() { - return this.deviceToken; - } - - private T parseResponse(String jsonResponse, Class responseType) throws JsonProcessingException { return new ObjectMapper().readValue(jsonResponse, responseType); } From 258b51e23e323968a54b590c78e9804c57ec3ae7 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:56:33 -0300 Subject: [PATCH 13/30] chore: updated gitignore --- .gitignore | 2 +- .idea/.gitignore | 10 ---------- 2 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 .idea/.gitignore diff --git a/.gitignore b/.gitignore index 63ca627..c8c2aca 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,4 @@ build/ .DS_Store ### Intelijj IDEA ### -!.idea \ No newline at end of file +/.idea diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index ab774e1..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml - -* \ No newline at end of file From 98a6153a805910150060d0f81767848aaa0fbc01 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:57:19 -0300 Subject: [PATCH 14/30] fix: put the @jsonproperty and turn the snake_case to camelCase --- .../apibrasil/sdk/dto/base/bairro/Bairro.java | 6 ++++- .../apibrasil/sdk/dto/base/cidade/Cidade.java | 20 ++++++++++++--- .../apibrasil/sdk/dto/base/estado/Estado.java | 25 ++++++++++++++----- 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/apibrasil/sdk/dto/base/bairro/Bairro.java b/src/main/java/com/apibrasil/sdk/dto/base/bairro/Bairro.java index d1a6e11..a2e429f 100644 --- a/src/main/java/com/apibrasil/sdk/dto/base/bairro/Bairro.java +++ b/src/main/java/com/apibrasil/sdk/dto/base/bairro/Bairro.java @@ -1,12 +1,16 @@ package com.apibrasil.sdk.dto.base.bairro; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class Bairro { private String bairro; - private String bairro_sem_acento; + @JsonProperty("bairro_sem_acento") + private String bairroSemAcento; private String estado; private String latitude; private String longitude; + @JsonProperty("bairro_faixa") + private BairroFaixa bairroFaixa; } \ No newline at end of file diff --git a/src/main/java/com/apibrasil/sdk/dto/base/cidade/Cidade.java b/src/main/java/com/apibrasil/sdk/dto/base/cidade/Cidade.java index f5f0da5..bee4412 100644 --- a/src/main/java/com/apibrasil/sdk/dto/base/cidade/Cidade.java +++ b/src/main/java/com/apibrasil/sdk/dto/base/cidade/Cidade.java @@ -1,6 +1,7 @@ package com.apibrasil.sdk.dto.base.cidade; import com.apibrasil.sdk.dto.base.bairro.Bairro; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @@ -8,12 +9,25 @@ @Data public class Cidade { private String cidade; - private String cidade_sem_acento; + + @JsonProperty("cidade_sem_acento") + private String cidadeSemAcento; + private String estado; - private String cidade_ibge; + + @JsonProperty("cidade_ibge") + private String cidadeIbge; + private String ddd; - private String cidade_area; + + @JsonProperty("cidade_area") + private String cidadeArea; + private String latitude; private String longitude; + private List bairros; + + @JsonProperty("cidade_faixa") + private CidadeFaixa cidadeFaixa; } diff --git a/src/main/java/com/apibrasil/sdk/dto/base/estado/Estado.java b/src/main/java/com/apibrasil/sdk/dto/base/estado/Estado.java index 8cb14eb..2e87f45 100644 --- a/src/main/java/com/apibrasil/sdk/dto/base/estado/Estado.java +++ b/src/main/java/com/apibrasil/sdk/dto/base/estado/Estado.java @@ -1,18 +1,31 @@ package com.apibrasil.sdk.dto.base.estado; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; @Data public class Estado { private String sigla; - private String faixa_ini; - private String faixa_fim; + + @JsonProperty("faixa_ini") + private String faixaIni; + + @JsonProperty("faixa_fim") + private String faixaFim; + private String estado; private String capital; private String regiao; - private String estado_sem_acento; - private String capital_sem_acento; - private String regiao_sem_acento; + + @JsonProperty("estado_sem_acento") + private String estadoSemAcento; + + @JsonProperty("capital_sem_acento") + private String capitalSemAcento; + + @JsonProperty("regiao_sem_acento") + private String regiaoSemAcento; + private String latitude; private String longitude; -} \ No newline at end of file +} From bee12cc3eb93d8838a9a0b82a7b8f11a72cd7fe0 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:57:36 -0300 Subject: [PATCH 15/30] feat: create a base bairrofaixa dto --- .../apibrasil/sdk/dto/base/bairro/BairroFaixa.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/bairro/BairroFaixa.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/bairro/BairroFaixa.java b/src/main/java/com/apibrasil/sdk/dto/base/bairro/BairroFaixa.java new file mode 100644 index 0000000..91912a9 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/bairro/BairroFaixa.java @@ -0,0 +1,13 @@ +package com.apibrasil.sdk.dto.base.bairro; + + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class BairroFaixa { + @JsonProperty("faixa_ini") + private String faixaIni; + @JsonProperty("faixa_fim") + private String faixaFim; +} From 5f0f9ac6081c05c9f5e6e4ed7ede0d22947b6d29 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:57:47 -0300 Subject: [PATCH 16/30] feat: create a base cidadesfaixa dto --- .../apibrasil/sdk/dto/base/cidade/CidadeFaixa.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/cidade/CidadeFaixa.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/cidade/CidadeFaixa.java b/src/main/java/com/apibrasil/sdk/dto/base/cidade/CidadeFaixa.java new file mode 100644 index 0000000..b444bc3 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/cidade/CidadeFaixa.java @@ -0,0 +1,14 @@ +package com.apibrasil.sdk.dto.base.cidade; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class CidadeFaixa { + private String cidade; + private String estado; + @JsonProperty("faixa_ini") + private String faixaIni; + @JsonProperty("faixa_fim") + private String faixaFim; +} From 30a6486d6f3e3b0b25b3e1224b2552a81bb79a8d Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:57:56 -0300 Subject: [PATCH 17/30] feat: create a base complemento dto --- .../sdk/dto/base/complemento/Complemento.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/complemento/Complemento.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/complemento/Complemento.java b/src/main/java/com/apibrasil/sdk/dto/base/complemento/Complemento.java new file mode 100644 index 0000000..a48deb7 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/complemento/Complemento.java @@ -0,0 +1,12 @@ +package com.apibrasil.sdk.dto.base.complemento; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class Complemento { + private String cep; + private String complemento; + @JsonProperty("complemento_sem_acento") + private String complementoSemAcento; +} From c942b4855ca133f1abb2b46a540ed9ecbb1b2506 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:58:04 -0300 Subject: [PATCH 18/30] feat: create a base distrito dto --- .../sdk/dto/base/distrito/Distrito.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/distrito/Distrito.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/distrito/Distrito.java b/src/main/java/com/apibrasil/sdk/dto/base/distrito/Distrito.java new file mode 100644 index 0000000..df5a0c8 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/distrito/Distrito.java @@ -0,0 +1,19 @@ +package com.apibrasil.sdk.dto.base.distrito; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class Distrito { + private String distrito; + + @JsonProperty("distrito_sem_acento") + private String distritoSemAcento; + + private String estado; + private String latitude; + private String longitude; + + @JsonProperty("distrito_faixa") + private DistritoFaixa distritoFaixa; +} From 101281c21f6451e89b7d9d813946b82d4fd5ee00 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Wed, 31 Jan 2024 23:58:12 -0300 Subject: [PATCH 19/30] feat: create a base distritofaixa dto --- .../sdk/dto/base/distrito/DistritoFaixa.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/distrito/DistritoFaixa.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/distrito/DistritoFaixa.java b/src/main/java/com/apibrasil/sdk/dto/base/distrito/DistritoFaixa.java new file mode 100644 index 0000000..bcde0b5 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/distrito/DistritoFaixa.java @@ -0,0 +1,16 @@ +package com.apibrasil.sdk.dto.base.distrito; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class DistritoFaixa { + private String distrito; + + @JsonProperty("distrito_sem_acento") + private String distritoSemAcento; + + private String estado; + private String latitude; + private String longitude; +} From 26cc1aa5219fbf3b9758cfb271f3aa603447f95d Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 00:00:13 -0300 Subject: [PATCH 20/30] style: indent base api client --- src/main/java/com/apibrasil/sdk/client/base/BaseApiClient.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/apibrasil/sdk/client/base/BaseApiClient.java b/src/main/java/com/apibrasil/sdk/client/base/BaseApiClient.java index 8d4cfbf..d45c4b3 100644 --- a/src/main/java/com/apibrasil/sdk/client/base/BaseApiClient.java +++ b/src/main/java/com/apibrasil/sdk/client/base/BaseApiClient.java @@ -10,7 +10,6 @@ public abstract class BaseApiClient { protected final ApiClient apiClient; protected String authorizationToken; - public BaseApiClient(ApiClient apiClient) { this.apiClient = apiClient; } From 7c50eb7a82aaadba29caec57f9de42d6645edac3 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 00:14:31 -0300 Subject: [PATCH 21/30] fix: rename the files for follow the pattern --- .../bairros/{BairrosRequest.java => BairrosReq.java} | 2 +- .../{BairrosResponse.java => BairrosRes.java} | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) rename src/main/java/com/apibrasil/sdk/dto/bairros/{BairrosRequest.java => BairrosReq.java} (76%) rename src/main/java/com/apibrasil/sdk/dto/bairros/{BairrosResponse.java => BairrosRes.java} (59%) diff --git a/src/main/java/com/apibrasil/sdk/dto/bairros/BairrosRequest.java b/src/main/java/com/apibrasil/sdk/dto/bairros/BairrosReq.java similarity index 76% rename from src/main/java/com/apibrasil/sdk/dto/bairros/BairrosRequest.java rename to src/main/java/com/apibrasil/sdk/dto/bairros/BairrosReq.java index d882a27..aeab546 100644 --- a/src/main/java/com/apibrasil/sdk/dto/bairros/BairrosRequest.java +++ b/src/main/java/com/apibrasil/sdk/dto/bairros/BairrosReq.java @@ -3,6 +3,6 @@ import lombok.Data; @Data -public class BairrosRequest { +public class BairrosReq { private String cidade; } \ No newline at end of file diff --git a/src/main/java/com/apibrasil/sdk/dto/bairros/BairrosResponse.java b/src/main/java/com/apibrasil/sdk/dto/bairros/BairrosRes.java similarity index 59% rename from src/main/java/com/apibrasil/sdk/dto/bairros/BairrosResponse.java rename to src/main/java/com/apibrasil/sdk/dto/bairros/BairrosRes.java index 177bce6..51727a1 100644 --- a/src/main/java/com/apibrasil/sdk/dto/bairros/BairrosResponse.java +++ b/src/main/java/com/apibrasil/sdk/dto/bairros/BairrosRes.java @@ -2,17 +2,21 @@ import com.apibrasil.sdk.dto.base.bairro.Bairro; import com.apibrasil.sdk.dto.base.cidade.Cidade; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @Data -public class BairrosResponse { +public class BairrosRes { private boolean error; private String message; private ResponseData response; - private int api_limit; - private String api_limit_for; - private int api_limit_used; + @JsonProperty("api_limit") + private int apiLimit; + @JsonProperty("api_limit_for") + private String apiLimitFor; + @JsonProperty("api_limit_used") + private int apiLimitUsed; @Data public static class ResponseData { From a9dc1245cc63378350ff2de5f6a8bde8bc7381e0 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 00:14:45 -0300 Subject: [PATCH 22/30] feat: create bairros client --- .../sdk/client/bairros/BairrosClient.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/client/bairros/BairrosClient.java diff --git a/src/main/java/com/apibrasil/sdk/client/bairros/BairrosClient.java b/src/main/java/com/apibrasil/sdk/client/bairros/BairrosClient.java new file mode 100644 index 0000000..4da3408 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/client/bairros/BairrosClient.java @@ -0,0 +1,19 @@ +package com.apibrasil.sdk.client.bairros; + +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.client.base.BaseApiClient; +import com.apibrasil.sdk.dto.bairros.BairrosReq; +import com.apibrasil.sdk.dto.bairros.BairrosRes; +import com.apibrasil.sdk.exception.ApiException; + +public class BairrosClient extends BaseApiClient { + private static final String ENDPOINT = "https://cluster.apigratis.com/api/v2/cep/bairros"; + + public BairrosClient(ApiClient apiClient) { + super(apiClient); + } + + public BairrosRes bairros(BairrosReq request) throws ApiException { + return executePost(ENDPOINT, request, BairrosRes.class); + } +} From 355eb346fe426e36747e944df6489d057116464c Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 00:15:56 -0300 Subject: [PATCH 23/30] feat: create cep details dto --- .../sdk/dto/base/cep/CepDetails.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/dto/base/cep/CepDetails.java diff --git a/src/main/java/com/apibrasil/sdk/dto/base/cep/CepDetails.java b/src/main/java/com/apibrasil/sdk/dto/base/cep/CepDetails.java new file mode 100644 index 0000000..ad765a7 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/dto/base/cep/CepDetails.java @@ -0,0 +1,46 @@ +package com.apibrasil.sdk.dto.base.cep; + +import com.apibrasil.sdk.dto.base.bairro.Bairro; +import com.apibrasil.sdk.dto.base.cidade.Cidade; +import com.apibrasil.sdk.dto.base.complemento.Complemento; +import com.apibrasil.sdk.dto.base.distrito.Distrito; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class CepDetails { + private String cep; + private String tipo; + + @JsonProperty("nome_logradouro") + private String nomeLogradouro; + + private String logradouro; + + @JsonProperty("distrito_id") + private String distritoId; + + private String estado; + + @JsonProperty("tipo_sem_acento") + private String tipoSemAcento; + + @JsonProperty("nome_logradouro_sem_acento") + private String nomeLogradouroSemAcento; + + @JsonProperty("logradouro_sem_acento") + private String logradouroSemAcento; + + private String latitude; + private String longitude; + + @JsonProperty("cep_ativo") + private String cepAtivo; + + private Cidade cidade; + private Bairro bairro; + private List complemento; + private Distrito distrito; +} From 1cac333cf5398182301476e638f7759a2efb9ab9 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 00:16:36 -0300 Subject: [PATCH 24/30] chore: add mapped json properties --- .../com/apibrasil/sdk/dto/cep/CepRes.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/com/apibrasil/sdk/dto/cep/CepRes.java b/src/main/java/com/apibrasil/sdk/dto/cep/CepRes.java index 75aadf2..15bc050 100644 --- a/src/main/java/com/apibrasil/sdk/dto/cep/CepRes.java +++ b/src/main/java/com/apibrasil/sdk/dto/cep/CepRes.java @@ -1,4 +1,25 @@ package com.apibrasil.sdk.dto.cep; +import com.apibrasil.sdk.dto.base.cep.CepDetails; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data public class CepRes { + private boolean error; + private String message; + + @JsonProperty("api_limit") + private int apiLimit; + + @JsonProperty("api_limit_for") + private String apiLimitFor; + + @JsonProperty("api_limit_used") + private int apiLimitUsed; + + @Data + public static class CepResponseData { + private CepDetails cep; + } } From 6fad25692de820bacc5bad2dd1bcad41f78287f6 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 00:28:06 -0300 Subject: [PATCH 25/30] feat: create some clients --- .../apibrasil/sdk/client/cep/CepClient.java | 20 +++++++++++++++++++ .../sdk/client/cidades/CidadesClient.java | 20 +++++++++++++++++++ .../sdk/client/cidades/CidadesDDDClient.java | 20 +++++++++++++++++++ .../sdk/client/estados/EstadosClient.java | 20 +++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 src/main/java/com/apibrasil/sdk/client/cep/CepClient.java create mode 100644 src/main/java/com/apibrasil/sdk/client/cidades/CidadesClient.java create mode 100644 src/main/java/com/apibrasil/sdk/client/cidades/CidadesDDDClient.java create mode 100644 src/main/java/com/apibrasil/sdk/client/estados/EstadosClient.java diff --git a/src/main/java/com/apibrasil/sdk/client/cep/CepClient.java b/src/main/java/com/apibrasil/sdk/client/cep/CepClient.java new file mode 100644 index 0000000..5552619 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/client/cep/CepClient.java @@ -0,0 +1,20 @@ +package com.apibrasil.sdk.client.cep; + +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.client.base.BaseApiClient; +import com.apibrasil.sdk.dto.cep.CepReq; +import com.apibrasil.sdk.dto.cep.CepRes; +import com.apibrasil.sdk.exception.ApiException; + +public class CepClient extends BaseApiClient { + + private static final String ENDPOINT = "https://cluster.apigratis.com/api/v2/cep"; + + public CepClient(ApiClient apiClient) { + super(apiClient); + } + + public CepRes getCepInfo(CepReq request) throws ApiException { + return executePost(ENDPOINT, request, CepRes.class); + } +} \ No newline at end of file diff --git a/src/main/java/com/apibrasil/sdk/client/cidades/CidadesClient.java b/src/main/java/com/apibrasil/sdk/client/cidades/CidadesClient.java new file mode 100644 index 0000000..43ea5ad --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/client/cidades/CidadesClient.java @@ -0,0 +1,20 @@ +package com.apibrasil.sdk.client.cidades; + +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.client.base.BaseApiClient; +import com.apibrasil.sdk.dto.cidades.CidadesReq; +import com.apibrasil.sdk.dto.cidades.CidadesRes; +import com.apibrasil.sdk.exception.ApiException; + +public class CidadesClient extends BaseApiClient { + + private static final String ENDPOINT = "https://cluster.apigratis.com/api/v2/cep/cidades"; + + public CidadesClient(ApiClient apiClient) { + super(apiClient); + } + + public CidadesRes getCidades(CidadesReq request) throws ApiException { + return executePost(ENDPOINT, request, CidadesRes.class); + } +} \ No newline at end of file diff --git a/src/main/java/com/apibrasil/sdk/client/cidades/CidadesDDDClient.java b/src/main/java/com/apibrasil/sdk/client/cidades/CidadesDDDClient.java new file mode 100644 index 0000000..6b84a4f --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/client/cidades/CidadesDDDClient.java @@ -0,0 +1,20 @@ +package com.apibrasil.sdk.client.cidades; + +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.client.base.BaseApiClient; +import com.apibrasil.sdk.dto.cidades.CidadesDDDReq; +import com.apibrasil.sdk.dto.cidades.CidadesDDDRes; +import com.apibrasil.sdk.exception.ApiException; + +public class CidadesDDDClient extends BaseApiClient { + + private static final String ENDPOINT = "https://cluster.apigratis.com/api/v2/cep/cidadesPorDDD"; + + public CidadesDDDClient(ApiClient apiClient) { + super(apiClient); + } + + public CidadesDDDRes getCidadesPorDDD(CidadesDDDReq request) throws ApiException { + return executePost(ENDPOINT, request, CidadesDDDRes.class); + } +} diff --git a/src/main/java/com/apibrasil/sdk/client/estados/EstadosClient.java b/src/main/java/com/apibrasil/sdk/client/estados/EstadosClient.java new file mode 100644 index 0000000..85fef21 --- /dev/null +++ b/src/main/java/com/apibrasil/sdk/client/estados/EstadosClient.java @@ -0,0 +1,20 @@ +package com.apibrasil.sdk.client.estados; + +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.client.base.BaseApiClient; +import com.apibrasil.sdk.dto.estados.EstadosReq; +import com.apibrasil.sdk.dto.estados.EstadosRes; +import com.apibrasil.sdk.exception.ApiException; + +public class EstadosClient extends BaseApiClient { + + private static final String ENDPOINT = "https://cluster.apigratis.com/api/v2/cep/estados"; + + public EstadosClient(ApiClient apiClient) { + super(apiClient); + } + + public EstadosRes getEstados(EstadosReq request) throws ApiException { + return executePost(ENDPOINT, request, EstadosRes.class); + } +} \ No newline at end of file From f3823ca753c6189fb242f08b20b5546b1d4e202a Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 00:56:55 -0300 Subject: [PATCH 26/30] chore: add mockito and junit for unit tests --- pom.xml | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 25abd3b..3f49464 100644 --- a/pom.xml +++ b/pom.xml @@ -36,6 +36,29 @@ slf4j-simple 1.7.32 + + org.junit.jupiter + junit-jupiter-api + 5.7.0 + test + + + org.junit.jupiter + junit-jupiter-engine + 5.7.0 + test + + + org.mockito + mockito-core + 3.6.0 + test + + + org.mockito + mockito-junit-jupiter + 3.6.0 + test + - \ No newline at end of file From d48023738037f40dd58acaf79603b8b6736b7d50 Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 00:57:28 -0300 Subject: [PATCH 27/30] chore: add one unrecognized field called server on device dto --- src/main/java/com/apibrasil/sdk/dto/base/device/Device.java | 2 ++ src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/apibrasil/sdk/dto/base/device/Device.java b/src/main/java/com/apibrasil/sdk/dto/base/device/Device.java index 087cc74..441510a 100644 --- a/src/main/java/com/apibrasil/sdk/dto/base/device/Device.java +++ b/src/main/java/com/apibrasil/sdk/dto/base/device/Device.java @@ -39,4 +39,6 @@ public class Device { @JsonProperty("api_info") private ApiInfo apiInfo; + + private String server; } diff --git a/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java index 55f8d93..26619cf 100644 --- a/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java +++ b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java @@ -17,5 +17,4 @@ public class LoginRes { private List> invoices; @JsonProperty("authorization") private Authorization authorization; - } \ No newline at end of file From 8343780ad344b9328707f730f27e1c76d78d430c Mon Sep 17 00:00:00 2001 From: RobsonTrasel Date: Thu, 1 Feb 2024 01:01:31 -0300 Subject: [PATCH 28/30] test(LoginClient): add unit tests for login functionality - Add tests to ensure the login process works correctly with valid credentials. - Include tests to handle incorrect credentials and network issues. Signed-off-by: RobsonTrasel --- .../java/e2e/login/LoginClientE2ETest.java | 30 ++++++++++++++++ src/test/java/unit/login/LoginClientTest.java | 35 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 src/test/java/e2e/login/LoginClientE2ETest.java create mode 100644 src/test/java/unit/login/LoginClientTest.java diff --git a/src/test/java/e2e/login/LoginClientE2ETest.java b/src/test/java/e2e/login/LoginClientE2ETest.java new file mode 100644 index 0000000..bc91bfa --- /dev/null +++ b/src/test/java/e2e/login/LoginClientE2ETest.java @@ -0,0 +1,30 @@ +package e2e.login; + +import com.apibrasil.sdk.client.ApiClientImpl; +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.client.login.LoginClient; +import com.apibrasil.sdk.dto.login.LoginReq; +import com.apibrasil.sdk.dto.login.LoginRes; +import com.apibrasil.sdk.exception.ApiException; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +public class LoginClientE2ETest { + @Test + void testLoginE2E() { + ApiClient realApiClient = new ApiClientImpl(); + LoginClient loginClient = new LoginClient(realApiClient); + LoginReq request = new LoginReq(); + request.setEmail("seuemail@exemplo.com"); + request.setPassword("suasenha"); + + try { + LoginRes response = loginClient.login(request); + assertNotNull(response); + assertNotNull(response.getAuthorization().getToken()); + } catch (ApiException e) { + e.printStackTrace(); + fail("Falha na chamada da API"); + } + } +} diff --git a/src/test/java/unit/login/LoginClientTest.java b/src/test/java/unit/login/LoginClientTest.java new file mode 100644 index 0000000..2a4ada5 --- /dev/null +++ b/src/test/java/unit/login/LoginClientTest.java @@ -0,0 +1,35 @@ +package unit.login; + +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.client.login.LoginClient; +import com.apibrasil.sdk.dto.base.authorization.Authorization; +import com.apibrasil.sdk.dto.login.LoginReq; +import com.apibrasil.sdk.dto.login.LoginRes; +import com.apibrasil.sdk.exception.ApiException; +import org.apache.hc.client5.http.classic.methods.HttpPost; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.*; + +public class LoginClientTest { + @Test + void testLoginSuccess() throws ApiException { + ApiClient mockApiClient = mock(ApiClient.class); + LoginClient loginClient = new LoginClient(mockApiClient); + LoginReq mockRequest = new LoginReq(); + LoginRes mockResponse = new LoginRes(); + Authorization authorization = new Authorization(); + authorization.setToken("fakeToken"); + mockResponse.setAuthorization(authorization); + + when(mockApiClient.executeApiCall(any(HttpPost.class), eq(LoginRes.class))) + .thenReturn(mockResponse); + + LoginRes response = loginClient.login(mockRequest); + + assertNotNull(response); + assertEquals("fakeToken", response.getAuthorization().getToken()); + } +} From b6415430be583fe524855b622b4e42a1e014de24 Mon Sep 17 00:00:00 2001 From: Robson Fernando Trasel de Souza <95061628+RobsonTrasel@users.noreply.github.com> Date: Thu, 1 Feb 2024 01:04:04 -0300 Subject: [PATCH 29/30] fix: delete .idea folder --- .idea/encodings.xml | 7 --- .idea/misc.xml | 15 ------ .idea/uiDesigner.xml | 124 ------------------------------------------- .idea/vcs.xml | 6 --- 4 files changed, 152 deletions(-) delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/uiDesigner.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index aa00ffa..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index d9337d6..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml deleted file mode 100644 index 2b63946..0000000 --- a/.idea/uiDesigner.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 4b627d46abf0b1139b9d79a65e9a5bf3f8bcfb07 Mon Sep 17 00:00:00 2001 From: Gabriel Martins Date: Fri, 2 Feb 2024 16:05:28 -0300 Subject: [PATCH 30/30] refatorando testes --- pom.xml | 20 +-- .../dto/base/authorization/Authorization.java | 40 +++++- .../com/apibrasil/sdk/dto/base/user/User.java | 121 +++++++++++++++++- .../com/apibrasil/sdk/dto/login/LoginReq.java | 21 ++- .../com/apibrasil/sdk/dto/login/LoginRes.java | 42 +++++- .../sdk/client/login/LoginClientTest.java | 101 +++++++++++++++ .../java/e2e/login/LoginClientE2ETest.java | 30 ----- src/test/java/unit/login/LoginClientTest.java | 35 ----- 8 files changed, 318 insertions(+), 92 deletions(-) create mode 100644 src/test/java/com/apibrasil/sdk/client/login/LoginClientTest.java delete mode 100644 src/test/java/e2e/login/LoginClientE2ETest.java delete mode 100644 src/test/java/unit/login/LoginClientTest.java diff --git a/pom.xml b/pom.xml index 3f49464..45e277c 100644 --- a/pom.xml +++ b/pom.xml @@ -36,28 +36,10 @@ slf4j-simple 1.7.32 - - org.junit.jupiter - junit-jupiter-api - 5.7.0 - test - - - org.junit.jupiter - junit-jupiter-engine - 5.7.0 - test - - - org.mockito - mockito-core - 3.6.0 - test - org.mockito mockito-junit-jupiter - 3.6.0 + 5.3.1 test diff --git a/src/main/java/com/apibrasil/sdk/dto/base/authorization/Authorization.java b/src/main/java/com/apibrasil/sdk/dto/base/authorization/Authorization.java index cc87c74..aec3106 100644 --- a/src/main/java/com/apibrasil/sdk/dto/base/authorization/Authorization.java +++ b/src/main/java/com/apibrasil/sdk/dto/base/authorization/Authorization.java @@ -1,9 +1,9 @@ package com.apibrasil.sdk.dto.base.authorization; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -@Data +import java.util.Objects; + public class Authorization { private String token; @@ -11,5 +11,41 @@ public class Authorization { private long expiresIn; private String type; + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public long getExpiresIn() { + return expiresIn; + } + + public void setExpiresIn(long expiresIn) { + this.expiresIn = expiresIn; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof Authorization that)) return false; + return expiresIn == that.expiresIn && Objects.equals(token, that.token) && Objects.equals(type, that.type); + } + + @Override + public int hashCode() { + return Objects.hash(token, expiresIn, type); + } } diff --git a/src/main/java/com/apibrasil/sdk/dto/base/user/User.java b/src/main/java/com/apibrasil/sdk/dto/base/user/User.java index ec8d677..7a91596 100644 --- a/src/main/java/com/apibrasil/sdk/dto/base/user/User.java +++ b/src/main/java/com/apibrasil/sdk/dto/base/user/User.java @@ -2,14 +2,15 @@ import com.apibrasil.sdk.dto.base.device.Device; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; import java.util.List; +import java.util.Objects; + -@Data public class User { private String search; private String cellphone; + private String email; @JsonProperty("first_name") @@ -39,4 +40,120 @@ public class User { private String lastLoginAt; private List devices; + + public String getSearch() { + return search; + } + + public void setSearch(String search) { + this.search = search; + } + + public String getCellphone() { + return cellphone; + } + + public void setCellphone(String cellphone) { + this.cellphone = cellphone; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getStatusFinance() { + return statusFinance; + } + + public void setStatusFinance(String statusFinance) { + this.statusFinance = statusFinance; + } + + public int getDevicesCount() { + return devicesCount; + } + + public void setDevicesCount(int devicesCount) { + this.devicesCount = devicesCount; + } + + public int getInvoicesOpenCount() { + return invoicesOpenCount; + } + + public void setInvoicesOpenCount(int invoicesOpenCount) { + this.invoicesOpenCount = invoicesOpenCount; + } + + public String getLastLoginIp() { + return lastLoginIp; + } + + public void setLastLoginIp(String lastLoginIp) { + this.lastLoginIp = lastLoginIp; + } + + public String getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(String updatedAt) { + this.updatedAt = updatedAt; + } + + public String getLastLoginAt() { + return lastLoginAt; + } + + public void setLastLoginAt(String lastLoginAt) { + this.lastLoginAt = lastLoginAt; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof User user)) return false; + return devicesCount == user.devicesCount && invoicesOpenCount == user.invoicesOpenCount && Objects.equals(search, user.search) && Objects.equals(cellphone, user.cellphone) && Objects.equals(email, user.email) && Objects.equals(firstName, user.firstName) && Objects.equals(lastName, user.lastName) && Objects.equals(status, user.status) && Objects.equals(statusFinance, user.statusFinance) && Objects.equals(lastLoginIp, user.lastLoginIp) && Objects.equals(updatedAt, user.updatedAt) && Objects.equals(lastLoginAt, user.lastLoginAt) && Objects.equals(devices, user.devices); + } + + @Override + public int hashCode() { + return Objects.hash(search, cellphone, email, firstName, lastName, status, statusFinance, devicesCount, invoicesOpenCount, lastLoginIp, updatedAt, lastLoginAt, devices); + } } diff --git a/src/main/java/com/apibrasil/sdk/dto/login/LoginReq.java b/src/main/java/com/apibrasil/sdk/dto/login/LoginReq.java index 4d173a5..a7f9864 100644 --- a/src/main/java/com/apibrasil/sdk/dto/login/LoginReq.java +++ b/src/main/java/com/apibrasil/sdk/dto/login/LoginReq.java @@ -1,9 +1,24 @@ package com.apibrasil.sdk.dto.login; -import lombok.Data; - -@Data public class LoginReq { private String email; private String password; + + public String getEmail() { + return email; + } + + public String getPassword() { + return password; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPassword(String password) { + this.password = password; + } + + } diff --git a/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java index 26619cf..2e0f8da 100644 --- a/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java +++ b/src/main/java/com/apibrasil/sdk/dto/login/LoginRes.java @@ -7,7 +7,7 @@ import java.util.List; import java.util.Map; -@Data + public class LoginRes { private boolean error; private String message; @@ -17,4 +17,44 @@ public class LoginRes { private List> invoices; @JsonProperty("authorization") private Authorization authorization; + + public boolean isError() { + return error; + } + + public void setError(boolean error) { + this.error = error; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public User getUser() { + return user; + } + + public void setUser(User user) { + this.user = user; + } + + public List> getInvoices() { + return invoices; + } + + public void setInvoices(List> invoices) { + this.invoices = invoices; + } + + public Authorization getAuthorization() { + return authorization; + } + + public void setAuthorization(Authorization authorization) { + this.authorization = authorization; + } } \ No newline at end of file diff --git a/src/test/java/com/apibrasil/sdk/client/login/LoginClientTest.java b/src/test/java/com/apibrasil/sdk/client/login/LoginClientTest.java new file mode 100644 index 0000000..9ca409a --- /dev/null +++ b/src/test/java/com/apibrasil/sdk/client/login/LoginClientTest.java @@ -0,0 +1,101 @@ +package com.apibrasil.sdk.client.login; + + +import com.apibrasil.sdk.client.base.ApiClient; +import com.apibrasil.sdk.dto.base.authorization.Authorization; +import com.apibrasil.sdk.dto.base.user.User; +import com.apibrasil.sdk.dto.login.LoginReq; +import com.apibrasil.sdk.dto.login.LoginRes; +import com.apibrasil.sdk.exception.ApiException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + + +@ExtendWith(MockitoExtension.class) +public class LoginClientTest { + + @Mock + private ApiClient apiClient; + + @InjectMocks + private LoginClient loginClient; + + @BeforeEach + void setUp() { + MockitoAnnotations.openMocks(this); + loginClient = new LoginClient(apiClient); + } + + @Test + void testLogin() throws ApiException { + LoginRes loginResponseMock = loginResponseMock(); + when(apiClient.executeApiCall(any(), any())).thenReturn(loginResponseMock()); + LoginRes responseMethod = loginClient.login(loginRequestMock()); + assertEquals(loginResponseMock.getMessage(), responseMethod.getMessage()); + assertEquals(loginResponseMock.getUser(), responseMethod.getUser()); + assertEquals(loginResponseMock.getAuthorization(), responseMethod.getAuthorization()); + assertEquals(loginResponseMock.getInvoices(), responseMethod.getInvoices()); + } + + @Test + void testLoginThrowsApiException() throws ApiException { + when(apiClient.executeApiCall(any(), any())).thenThrow(ApiException.class); + assertThrows(ApiException.class, () -> loginClient.login(loginRequestMock())); + } + + private LoginReq loginRequestMock() { + LoginReq loginRequestMock = new LoginReq(); + loginRequestMock.setEmail("seuemail@exemplo.com"); + loginRequestMock.setPassword("suasenha"); + return loginRequestMock; + } + + private LoginRes loginResponseMock() { + LoginRes loginResponseMock = new LoginRes(); + loginResponseMock.setError(false); + loginResponseMock.setInvoices(List.of()); + loginResponseMock.setMessage("Success"); + loginResponseMock.setUser(userMock()); + loginResponseMock.setAuthorization(authorizationMock()); + return loginResponseMock; + } + + private User userMock() { + User userMock = new User(); + userMock.setCellphone("5511999999999"); + userMock.setDevices(List.of()); + userMock.setEmail("seuemail@exemplo.com"); + userMock.setLastLoginAt("2021-08-25T14:00:00Z"); + userMock.setDevicesCount(1); + userMock.setLastLoginIp("192.168.1.10"); + userMock.setFirstName("Teste"); + userMock.setLastName("Testado"); + userMock.setInvoicesOpenCount(0); + userMock.setSearch("teste"); + userMock.setStatus("active"); + userMock.setStatusFinance("active"); + userMock.setUpdatedAt("2021-08-25T14:00:00Z"); + return userMock; + } + + private Authorization authorizationMock() { + Authorization authorizationMock = new Authorization(); + authorizationMock.setExpiresIn(3600); + authorizationMock.setToken("fakeToken"); + authorizationMock.setType("Bearer"); + return authorizationMock; + } + +} diff --git a/src/test/java/e2e/login/LoginClientE2ETest.java b/src/test/java/e2e/login/LoginClientE2ETest.java deleted file mode 100644 index bc91bfa..0000000 --- a/src/test/java/e2e/login/LoginClientE2ETest.java +++ /dev/null @@ -1,30 +0,0 @@ -package e2e.login; - -import com.apibrasil.sdk.client.ApiClientImpl; -import com.apibrasil.sdk.client.base.ApiClient; -import com.apibrasil.sdk.client.login.LoginClient; -import com.apibrasil.sdk.dto.login.LoginReq; -import com.apibrasil.sdk.dto.login.LoginRes; -import com.apibrasil.sdk.exception.ApiException; -import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - -public class LoginClientE2ETest { - @Test - void testLoginE2E() { - ApiClient realApiClient = new ApiClientImpl(); - LoginClient loginClient = new LoginClient(realApiClient); - LoginReq request = new LoginReq(); - request.setEmail("seuemail@exemplo.com"); - request.setPassword("suasenha"); - - try { - LoginRes response = loginClient.login(request); - assertNotNull(response); - assertNotNull(response.getAuthorization().getToken()); - } catch (ApiException e) { - e.printStackTrace(); - fail("Falha na chamada da API"); - } - } -} diff --git a/src/test/java/unit/login/LoginClientTest.java b/src/test/java/unit/login/LoginClientTest.java deleted file mode 100644 index 2a4ada5..0000000 --- a/src/test/java/unit/login/LoginClientTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package unit.login; - -import com.apibrasil.sdk.client.base.ApiClient; -import com.apibrasil.sdk.client.login.LoginClient; -import com.apibrasil.sdk.dto.base.authorization.Authorization; -import com.apibrasil.sdk.dto.login.LoginReq; -import com.apibrasil.sdk.dto.login.LoginRes; -import com.apibrasil.sdk.exception.ApiException; -import org.apache.hc.client5.http.classic.methods.HttpPost; -import org.junit.jupiter.api.Test; -import org.mockito.Mockito; -import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.ArgumentMatchers.*; -import static org.mockito.Mockito.*; - -public class LoginClientTest { - @Test - void testLoginSuccess() throws ApiException { - ApiClient mockApiClient = mock(ApiClient.class); - LoginClient loginClient = new LoginClient(mockApiClient); - LoginReq mockRequest = new LoginReq(); - LoginRes mockResponse = new LoginRes(); - Authorization authorization = new Authorization(); - authorization.setToken("fakeToken"); - mockResponse.setAuthorization(authorization); - - when(mockApiClient.executeApiCall(any(HttpPost.class), eq(LoginRes.class))) - .thenReturn(mockResponse); - - LoginRes response = loginClient.login(mockRequest); - - assertNotNull(response); - assertEquals("fakeToken", response.getAuthorization().getToken()); - } -}