Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ce1e8b2

Browse files
committed
CPTEC
1 parent 8360035 commit ce1e8b2

21 files changed

+880
-437
lines changed

src/main/java/br/com/brasilapi/BrasilAPI.java

Lines changed: 110 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111
import br.com.brasilapi.api.CPTEC;
1212
import br.com.brasilapi.api.CPTECClimaAeroporto;
1313
import br.com.brasilapi.api.CPTECClimaCapital;
14-
import br.com.brasilapi.api.CPTECLocalidade;
15-
import br.com.brasilapi.api.CPTECPrevisaoMeteorologica;
14+
import br.com.brasilapi.api.CPTECCidade;
15+
import br.com.brasilapi.api.CPTECClimaPrevisao;
16+
import br.com.brasilapi.api.CPTECOnda;
1617
import br.com.brasilapi.api.Corretora;
1718
import br.com.brasilapi.api.DDD;
1819
import br.com.brasilapi.api.Feriados;
@@ -226,25 +227,105 @@ public static Corretora corretora(String cnpj) {
226227
return obj != null ? (Corretora) obj.clone() : null;
227228
}
228229

229-
public static CPTECLocalidade[] cptecLocalidade() {
230+
/**
231+
* Retorna listagem com todas as cidades junto a seus respectivos códigos presentes
232+
* nos serviços da CPTEC. O Código destas cidades será utilizado para os serviços
233+
* de meteorologia e a ondas (previsão oceânica) fornecido pelo centro. Leve em consideração
234+
* que o WebService do CPTEC as vezes é instável, então se não encontrar uma determinada
235+
* cidade na listagem completa, tente buscando por parte de seu nome no endpoint de busca.
236+
*
237+
* @return Lista de {@link CPTECCidade}
238+
*/
239+
public static CPTECCidade[] cptecListarLocalidades() {
230240
CPTEC[] obj = (CPTEC[]) api(CPTEC[].class, "cptec/v1/cidade", "");
231241
return obj != null ? (CPTEC[]) obj.clone() : null;
232242
}
233243

234-
public static CPTECLocalidade[] cptecLocalidade(String nomeCidade) {
244+
/**
245+
* Retorna listagem com todas as cidades correspondentes ao termo pesquisado
246+
* junto a seus respectivos códigos presentes nos serviços da CPTEC.
247+
* O Código destas cidades será utilizado para os serviços de
248+
* meteorologia e a ondas (previsão oceânica) fornecido pelo centro.
249+
*
250+
* @param nomeCidade
251+
* @return Lista de {@link CPTECCidade}
252+
*/
253+
public static CPTECCidade[] cptecBuscarLocalidades(String nomeCidade) {
235254
CPTEC[] obj = (CPTEC[]) api(CPTEC[].class, "cptec/v1/cidade", nomeCidade);
236-
return obj != null ? (CPTECLocalidade[]) obj.clone() : null;
255+
return obj != null ? (CPTECCidade[]) obj.clone() : null;
237256
}
238257

258+
/**
259+
* Retorna condições meteorológicas atuais nas capitais do país,
260+
* com base nas estações de solo de seu aeroporto.
261+
*
262+
* @return Lista de {@link CPTECClimaCapital}
263+
*/
239264
public static CPTECClimaCapital[] cptecCondicoesAtuaisCapitais() {
240265
CPTEC[] obj = (CPTEC[]) api(CPTEC[].class, "cptec/v1/clima/capital", "");
241266
return obj != null ? (CPTECClimaCapital[]) obj.clone() : null;
242267
}
243268

244-
public static CPTECClimaAeroporto[] cptecCondicoesAtuaisAeroporto(String icaoCode) {
245-
CPTEC[] obj = (CPTEC[]) api(CPTEC[].class, "cptec/v1/clima/aeroporto", icaoCode);
246-
return obj != null ? (CPTECClimaAeroporto[]) obj.clone() : null;
269+
/**
270+
* Retorna condições meteorológicas atuais no aeroporto solicitado.
271+
* Este endpoint utiliza o código ICAO (4 dígitos) do aeroporto.
272+
*
273+
* @param icaoCode Código ICAO do aeroporto
274+
* @return {@link CPTECClimaAeroporto}
275+
*/
276+
public static CPTECClimaAeroporto cptecCondicoesAtuaisAeroporto(String icaoCode) {
277+
CPTEC obj = (CPTEC) api(CPTEC.class, "cptec/v1/clima/aeroporto/", icaoCode);
278+
return obj != null ? (CPTECClimaAeroporto) obj.clone() : null;
279+
}
280+
281+
/**
282+
* Retorna Pervisão meteorológica para 1 dia na cidade informada.
283+
*
284+
* @param codigoCidade
285+
* @return {@link CPTECClimaPrevisao}
286+
*/
287+
public static CPTECClimaPrevisao cptecPrevisaoMeteorologicaCidade(Integer codigoCidade) {
288+
CPTEC obj = (CPTEC) api(CPTEC.class, "cptec/v1/clima/previsao/", String.valueOf(codigoCidade));
289+
return obj != null ? (CPTECClimaPrevisao) obj.clone() : null;
247290
}
291+
292+
/**
293+
* Retorna a previsão meteorológica para a cidade informada para um período de 1 até 6 dias.
294+
* Devido a inconsistências encontradas nos retornos da CPTEC nossa API só consegue
295+
* retornar com precisão o período máximo de 6 dias.
296+
*
297+
* @param codigoCidade
298+
* @param dias Número de dias, máximo 6.
299+
* @return {@link CPTECClimaPrevisao}
300+
*/
301+
public static CPTECClimaPrevisao cptecPrevisaoMeteorologicaCidade(Integer codigoCidade, Integer dias) {
302+
CPTEC obj = (CPTEC) api(CPTEC.class, "cptec/v1/clima/previsao/" + codigoCidade + "/", String.valueOf(dias));
303+
return obj != null ? (CPTECClimaPrevisao) obj.clone() : null;
304+
}
305+
306+
/**
307+
* Retorna a previsão oceânica para a cidade informada para 1 dia.
308+
*
309+
* @param codigoCidade
310+
* @return {@link CPTECOnda}
311+
*/
312+
public static CPTECOnda cptecPrevisaoOceanica(Integer codigoCidade) {
313+
CPTEC obj = (CPTEC) api(CPTEC.class, "cptec/v1/ondas/", String.valueOf(codigoCidade));
314+
return obj != null ? (CPTECOnda) obj.clone() : null;
315+
}
316+
317+
/**
318+
* Retorna a previsão oceânica para a cidade informada para um período de, até, 6 dias.
319+
*
320+
* @param codigoCidade
321+
* @param dias Número de dias, máximo 6.
322+
* @return {@link CPTECOnda}
323+
*/
324+
public static CPTECOnda cptecPrevisaoOceanica(Integer codigoCidade, Integer dias) {
325+
CPTEC obj = (CPTEC) api(CPTEC.class, "cptec/v1/ondas/" + codigoCidade + "/", String.valueOf(dias));
326+
return obj != null ? (CPTECOnda) obj.clone() : null;
327+
}
328+
248329
/**
249330
* DDD significa Discagem Direta à Distância. é um sistema de ligação telefônica
250331
* automática entre diferentes áreas urbanas nacionais. O DDD é um código
@@ -482,22 +563,27 @@ public static Taxa taxa(String sigla) {
482563
* @return {@link Object}
483564
*/
484565
private static Object api(Class<?> classAPIModel, String parameter, String code) {
485-
code = code.replaceAll("/", "");
486-
if (Cache.getEnableCache()) {
487-
Object obj = Cache.getCache(classAPIModel, code);
488-
489-
if (obj == null) {
490-
String json = Service.connection(parameter + code);
491-
if (json != null) {
492-
obj = gson.fromJson(json, classAPIModel);
493-
Cache.setCache(classAPIModel, code, obj);
566+
try {
567+
code = code.replaceAll("/", "");
568+
if (Cache.getEnableCache()) {
569+
Object obj = Cache.getCache(classAPIModel, code);
570+
571+
if (obj == null) {
572+
String json = Service.connection(parameter + code);
573+
if (json != null) {
574+
obj = gson.fromJson(json, classAPIModel);
575+
Cache.setCache(classAPIModel, code, obj);
576+
}
494577
}
578+
579+
return obj;
580+
} else {
581+
String json = Service.connection(parameter + code);
582+
return gson.fromJson(json, classAPIModel);
495583
}
496-
497-
return obj;
498-
} else {
499-
String json = Service.connection(parameter + code);
500-
return gson.fromJson(json, classAPIModel);
584+
} catch (Exception e) {
585+
Log.setConsoleError(e.getMessage());
586+
return null;
501587
}
502588
}
503589

@@ -512,7 +598,8 @@ public static void main(String[] args) {
512598
+ " |____/|_| \\__,_|___/_|_/_/ \\_\\_| |___| \\___/ \\__,_| \\_/ \\__,_|\r\n"
513599
+ "\r\n BrasilAPI-Java. Version \u001B[42m" + VERSION + "\u001B[0m"
514600
+ "\r\n https://github.com/SavioAndres/BrasilAPI-Java");
515-
System.out.println(cptecLocalidade());
601+
Log.setEnable(true);
602+
System.out.println(cptecPrevisaoMeteorologicaCidade(241, 2));
516603
}
517604

518605
}

src/main/java/br/com/brasilapi/Service.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ protected static String connection(String urlParameter) {
4646
Log.setConsole("Json retornado: " + json);
4747

4848
} catch (IOException e) {
49+
Log.setConsoleError(e.getMessage());
4950
//conector.disconnect();
5051
//e.printStackTrace();
5152
}

src/main/java/br/com/brasilapi/api/CEP2.java

Lines changed: 59 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class CEP2 extends API {
2121
private String neighborhood;
2222
private String street;
2323
private String service;
24-
private CEP2Location location;
24+
private Location location;
2525

2626
public String getCep() {
2727
return cep;
@@ -71,11 +71,11 @@ public void setService(String service) {
7171
this.service = service;
7272
}
7373

74-
public CEP2Location getLocation() {
74+
public Location getLocation() {
7575
return location;
7676
}
7777

78-
public void setLocation(CEP2Location location) {
78+
public void setLocation(Location location) {
7979
this.location = location;
8080
}
8181

@@ -84,4 +84,60 @@ public String toString() {
8484
return "Cep [cep=" + cep + ", state=" + state + ", city=" + city + ", neighborhood=" + neighborhood
8585
+ ", street=" + street + ", service=" + service + ", location=" + location + "]";
8686
}
87+
88+
public class Location {
89+
private String type;
90+
private Coordinates coordinates;
91+
92+
public String getType() {
93+
return type;
94+
}
95+
96+
public void setType(String type) {
97+
this.type = type;
98+
}
99+
100+
public Coordinates getCoordinates() {
101+
return coordinates;
102+
}
103+
104+
public void setCoordinates(Coordinates coordinates) {
105+
this.coordinates = coordinates;
106+
}
107+
108+
@Override
109+
public String toString() {
110+
return "CepLocation [type=" + type + ", coordinates=" + coordinates + "]";
111+
}
112+
113+
114+
public class Coordinates {
115+
private String longitude;
116+
private String latitude;
117+
118+
public String getLongitude() {
119+
return longitude;
120+
}
121+
122+
public void setLongitude(String longitude) {
123+
this.longitude = longitude;
124+
}
125+
126+
public String getLatitude() {
127+
return latitude;
128+
}
129+
130+
public void setLatitude(String latitude) {
131+
this.latitude = latitude;
132+
}
133+
134+
@Override
135+
public String toString() {
136+
return "CepLocationCoordinates [longitude=" + longitude + ", latitude=" + latitude + "]";
137+
}
138+
139+
}
140+
141+
}
142+
87143
}

src/main/java/br/com/brasilapi/api/CEP2Location.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/main/java/br/com/brasilapi/api/CEP2LocationCoordinates.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)