Skip to content

Commit

Permalink
Merge pull request #78 from aVolpe/fix/gnb_url_2
Browse files Browse the repository at this point in the history
fix: Alberdi, Amambay and MaxiCambios urls
  • Loading branch information
aVolpe authored Mar 8, 2024
2 parents 1573946 + 68bea2b commit 21d07b1
Show file tree
Hide file tree
Showing 7 changed files with 92 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ public class QueryResponseDetail {
private long purchasePrice;
private long salePrice;
/**
* >1 if is increasing
* >1 if it is increasing
*/
private long purchaseTrend;
/**
* >1 if is increasing
* >1 if it is increasing
*/
private long saleTrend;
private String isoCode;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
public class Alberdi implements Gatherer {

private static final String CODE = "ALBERDI_2";
private static final String WS_URL = "http://www.cambiosalberdi.com/ws/getTablero.json.php";
private static final String WS_URL = "https://www.cambiosalberdi.com/ws/getTablero.json.php";
private final HTTPHelper helper;

@Override
Expand Down
8 changes: 7 additions & 1 deletion src/main/java/py/com/volpe/cotizacion/gatherer/Amambay.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import java.io.IOException;
import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
* @author Arturo Volpe
Expand All @@ -41,7 +42,12 @@ public List<QueryResponse> doQuery(Place p, List<PlaceBranch> branches) {

QueryResponse qr = new QueryResponse(p);

BranchExchangeData data = buildMapper().readValue(httpHelper.doGet(URL_CHANGE), BranchExchangeData.class);
BranchExchangeData data = buildMapper().readValue(httpHelper.doGet(
URL_CHANGE,
5000,
Map.of(),
true
), BranchExchangeData.class);

data.getCurrencyExchanges().forEach(exchange -> qr.addDetail(exchange.map()));

Expand Down
16 changes: 10 additions & 6 deletions src/main/java/py/com/volpe/cotizacion/gatherer/MaxiCambios.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import py.com.volpe.cotizacion.domain.QueryResponseDetail;

import javax.transaction.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
Expand Down Expand Up @@ -63,9 +64,9 @@ private String getURLForBranch(PlaceBranch branch) {
private QueryResponseDetail mapToDetail(ExchangeData detail, String iso) {
QueryResponseDetail qrd = new QueryResponseDetail();
qrd.setIsoCode(iso);
qrd.setSalePrice(detail.getVenta());
qrd.setSalePrice(detail.getVenta().longValue());
qrd.setSaleTrend("up.png".equals(detail.getVentaTendencia()) ? 1 : -1);
qrd.setPurchasePrice(detail.getCompra());
qrd.setPurchasePrice(detail.getCompra().longValue());
qrd.setPurchaseTrend("up.png".equals(detail.getCompraTendencia()) ? 1 : -1);
return qrd;
}
Expand Down Expand Up @@ -177,14 +178,17 @@ private static class ExchangeData {
private String pais;
private String nombre;
private String bandera;
private long compra;
private BigDecimal compra;
private String compraTendencia;
private long venta;
private BigDecimal venta;
private String ventaTendencia;
}

private static Long parse(String value) {
return Long.parseLong(value.replaceAll("\\..*", ""));
private static BigDecimal parse(String value) {
return new BigDecimal(value
.replaceAll("\\..*", "")
.replaceAll(",", ".")
);
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
* @since 1/5/20
*/
@ExtendWith(MockitoExtension.class)
public class MaxiCambiosTest {
class MaxiCambiosTest {

@Mock
private HTTPHelper wsHelper;
Expand All @@ -36,7 +36,7 @@ public class MaxiCambiosTest {
private MaxiCambios maxi;

@Test
public void testFetchAsu() throws Exception {
void testFetchAsu() throws Exception {

String data = IOUtils.toString(getClass().getResourceAsStream("maxi_asu.xml"), StandardCharsets.UTF_8);

Expand All @@ -51,20 +51,20 @@ public void testFetchAsu() throws Exception {

QueryResponse coti = result.get(0);

assertEquals(17, coti.getDetails().size());
assertEquals(15, coti.getDetails().size());

QueryResponseDetail usd = coti.getDetails()
.stream()
.filter(d -> d.getIsoCode().equals("USD"))
.findFirst().orElseThrow(() -> new AppException(500, "Data not found"));

assertEquals(6300, usd.getPurchasePrice());
assertEquals(6380, usd.getSalePrice());
assertEquals(7130, usd.getPurchasePrice());
assertEquals(7280, usd.getSalePrice());

}

@Test
public void testFetchCDE() throws Exception {
void testFetchCDE() throws Exception {

String data = IOUtils.toString(getClass().getResourceAsStream("maxi_cde.xml"), StandardCharsets.UTF_8);

Expand All @@ -86,8 +86,8 @@ public void testFetchCDE() throws Exception {
.filter(d -> d.getIsoCode().equals("USD"))
.findFirst().orElseThrow(() -> new AppException(500, "Data not found"));

assertEquals(6310, usd.getPurchasePrice());
assertEquals(6380, usd.getSalePrice());
assertEquals(7210, usd.getPurchasePrice());
assertEquals(7270, usd.getSalePrice());

}
}
45 changes: 22 additions & 23 deletions src/test/resources/py/com/volpe/cotizacion/gatherer/maxi_asu.xml
Original file line number Diff line number Diff line change
@@ -1,25 +1,24 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<cotizaciones>
<moneda><tipo>EFECTIVO</tipo><pais>EEUU</pais><nombre>Dólar</nombre><bandera>us.png</bandera><compra>6300</compra><compra_tendencia>up.png</compra_tendencia><venta>6380</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Argentina</pais><nombre>Peso </nombre><bandera>ar.png</bandera><compra>70</compra><compra_tendencia>down.png</compra_tendencia><venta>90</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Brasil</pais><nombre>Real</nombre><bandera>br.png</bandera><compra>1515</compra><compra_tendencia>down.png</compra_tendencia><venta>1600</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Uruguay</pais><nombre>Peso </nombre><bandera>ur.png</bandera><compra>150</compra><compra_tendencia>down.png</compra_tendencia><venta>240</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>EU</pais><nombre>Euro</nombre><bandera>eu.png</bandera><compra>6850</compra><compra_tendencia>down.png</compra_tendencia><venta>7100</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Gran Bretaña</pais><nombre>Libra</nombre><bandera>gbp.png</bandera><compra>8000</compra><compra_tendencia>down.png</compra_tendencia><venta>8900</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Japon</pais><nombre>Yen</nombre><bandera>yen.png</bandera><compra>50</compra><compra_tendencia>down.png</compra_tendencia><venta>63</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Chile</pais><nombre>Peso </nombre><bandera>ch.png</bandera><compra>5</compra><compra_tendencia>down.png</compra_tendencia><venta>11</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Suecia</pais><nombre>Corona </nombre><bandera>cs.png</bandera><compra>200</compra><compra_tendencia>down.png</compra_tendencia><venta>500</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Dinamarca</pais><nombre>Corona </nombre><bandera>cd.png</bandera><compra>200</compra><compra_tendencia>down.png</compra_tendencia><venta>950</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Canadá</pais><nombre>Dólar </nombre><bandera>dc.png</bandera><compra>4500</compra><compra_tendencia>down.png</compra_tendencia><venta>5500</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Australia</pais><nombre>Dólar </nombre><bandera>da.png</bandera><compra>4000</compra><compra_tendencia>down.png</compra_tendencia><venta>5500</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Suiza</pais><nombre>Franco </nombre><bandera>fs.png</bandera><compra>5500</compra><compra_tendencia>down.png</compra_tendencia><venta>6600</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Mejico</pais><nombre>Peso</nombre><bandera>pm.png</bandera><compra>350</compra><compra_tendencia>down.png</compra_tendencia><venta>450</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Peruano</pais><nombre>Sol </nombre><bandera>sp.png</bandera><compra>1950</compra><compra_tendencia>down.png</compra_tendencia><venta>2500</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Bolivia</pais><nombre>Peso </nombre><bandera>pb.png</bandera><compra>850</compra><compra_tendencia>down.png</compra_tendencia><venta>1000</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Colombia</pais><nombre>Peso </nombre><bandera>pc.png</bandera><compra>1.00</compra><compra_tendencia>down.png</compra_tendencia><venta>4.00</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>CH Y TRF</tipo><pais>EEUU</pais><nombre>Dólar</nombre><bandera>us.png</bandera><compra>6290</compra><compra_tendencia>up.png</compra_tendencia><venta>6510</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>CH Y TRF</tipo><pais>EU</pais><nombre>Euro</nombre><bandera>eu.png</bandera><compra>6300</compra><compra_tendencia>up.png</compra_tendencia><venta>7400</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>CH Y TRF</tipo><pais>Gran Bretaña</pais><nombre>Libra</nombre><bandera>gbp.png</bandera><compra>6500</compra><compra_tendencia>up.png</compra_tendencia><venta>8500</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>CH Y TRF </tipo><pais>Suiza</pais><nombre>Franco</nombre><bandera>fs.png</bandera><compra/><compra_tendencia>up.png</compra_tendencia><venta/><venta_tendencia>up.png</venta_tendencia></moneda>
<actualizacion>04/01/2020 - 20:40</actualizacion>
</cotizaciones>
<moneda><tipo>EFECTIVO</tipo><pais>EEUU</pais><nombre>DÛlar</nombre><bandera>us.png</bandera><compra>7130</compra><compra_tendencia>up.png</compra_tendencia><venta>7280</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Argentina</pais><nombre>Peso Arg</nombre><bandera>ar.png</bandera><compra>7.20</compra><compra_tendencia>down.png</compra_tendencia><venta>8.20</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Brasil</pais><nombre>Real</nombre><bandera>br.png</bandera><compra>1430</compra><compra_tendencia>down.png</compra_tendencia><venta>1480</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Uruguay</pais><nombre>Peso Uru</nombre><bandera>ur.png</bandera><compra>160</compra><compra_tendencia>down.png</compra_tendencia><venta>250</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>EU</pais><nombre>Euro</nombre><bandera>eu.png</bandera><compra>7800</compra><compra_tendencia>down.png</compra_tendencia><venta>8100</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Gran BretaÒa</pais><nombre>Libra</nombre><bandera>gbp.png</bandera><compra>8600</compra><compra_tendencia>down.png</compra_tendencia><venta>9950</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Japon</pais><nombre>Yen</nombre><bandera>yen.png</bandera><compra>35</compra><compra_tendencia>down.png</compra_tendencia><venta>55</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Chile</pais><nombre>Peso Chi</nombre><bandera>ch.png</bandera><compra>5</compra><compra_tendencia>down.png</compra_tendencia><venta>10</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Sudafrica</pais><nombre>Rand </nombre><bandera>sud.svg</bandera><compra>250</compra><compra_tendencia>down.png</compra_tendencia><venta>450</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Canad·</pais><nombre>DÛlar Canad·</nombre><bandera>dc.png</bandera><compra>4000</compra><compra_tendencia>down.png</compra_tendencia><venta>5500</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Australia</pais><nombre>DÛlar Aust</nombre><bandera>da.png</bandera><compra>4600</compra><compra_tendencia>down.png</compra_tendencia><venta>5200</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Suiza</pais><nombre>Franco </nombre><bandera>fs.png</bandera><compra>6000</compra><compra_tendencia>down.png</compra_tendencia><venta>8400</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Mejico</pais><nombre>Peso Mex</nombre><bandera>pm.png</bandera><compra>400</compra><compra_tendencia>down.png</compra_tendencia><venta>500</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Peruano</pais><nombre>Sol </nombre><bandera>sp.png</bandera><compra>1950</compra><compra_tendencia>down.png</compra_tendencia><venta>2200</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Bolivia</pais><nombre>Peso Bol</nombre><bandera>pb.png</bandera><compra>300</compra><compra_tendencia>down.png</compra_tendencia><venta>1000</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Colombia</pais><nombre>Peso Col</nombre><bandera>pc.png</bandera><compra>1.50</compra><compra_tendencia>down.png</compra_tendencia><venta>3.50</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>CH Y TRF</tipo><pais>EEUU</pais><nombre>DÛlar</nombre><bandera>us.png</bandera><compra>7130</compra><compra_tendencia>up.png</compra_tendencia><venta>7330</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>CH Y TRF</tipo><pais>EU</pais><nombre>Euro</nombre><bandera>eu.png</bandera><compra>7500</compra><compra_tendencia>up.png</compra_tendencia><venta>8450</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>CH Y TRF</tipo><pais>Gran BretaÒa</pais><nombre>Libra</nombre><bandera>gbp.png</bandera><compra>8600</compra><compra_tendencia>up.png</compra_tendencia><venta>9950</venta><venta_tendencia>up.png</venta_tendencia></moneda>
<moneda><tipo>CH Y TRF </tipo><pais>Suiza</pais><nombre>Franco </nombre><bandera>fs.png</bandera><compra/><compra_tendencia>up.png</compra_tendencia><venta/><venta_tendencia>up.png</venta_tendencia></moneda>
<actualizacion>08/03/2024 - 09:07</actualizacion>
</cotizaciones>
48 changes: 42 additions & 6 deletions src/test/resources/py/com/volpe/cotizacion/gatherer/maxi_cde.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,44 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<cotizaciones>
<moneda><tipo>EFECTIVO</tipo><pais>EEUU</pais><nombre>Dólar</nombre><bandera>us.png</bandera><compra>6310</compra><compra_tendencia/><venta>6380</venta><venta_tendencia/></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Argentina</pais><nombre>Peso </nombre><bandera>ar.png</bandera><compra>72</compra><compra_tendencia/><venta>85</venta><venta_tendencia/></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Brasil</pais><nombre>Real</nombre><bandera>br.png</bandera><compra>1500</compra><compra_tendencia/><venta>1545</venta><venta_tendencia/></moneda>
<moneda><tipo>EFECTIVO</tipo><pais>Euro</pais><nombre>Euro </nombre><bandera>eu.png</bandera><compra>6750</compra><compra_tendencia/><venta>7175</venta><venta_tendencia/></moneda>
<actualizacion>04/01/2020 - 20:40</actualizacion>
</cotizaciones>
<moneda>
<tipo>EFECTIVO</tipo>
<pais>EEUU</pais>
<nombre>DÛlar</nombre>
<bandera>us.png</bandera>
<compra>7210</compra>
<compra_tendencia>up.png</compra_tendencia>
<venta>7270</venta>
<venta_tendencia>up.png</venta_tendencia>
</moneda>
<moneda>
<tipo>EFECTIVO</tipo>
<pais>Argentina</pais>
<nombre>Peso</nombre>
<bandera>ar.png</bandera>
<compra>6,70</compra>
<compra_tendencia>down.png</compra_tendencia>
<venta>7,70</venta>
<venta_tendencia>up.png</venta_tendencia>
</moneda>
<moneda>
<tipo>EFECTIVO</tipo>
<pais>Brasil</pais>
<nombre>Real</nombre>
<bandera>br.png</bandera>
<compra>1430</compra>
<compra_tendencia>down.png</compra_tendencia>
<venta>1465</venta>
<venta_tendencia>up.png</venta_tendencia>
</moneda>
<moneda>
<tipo>EFECTIVO</tipo>
<pais>Euro</pais>
<nombre>Euro</nombre>
<bandera>eu.png</bandera>
<compra>7785</compra>
<compra_tendencia>down.png</compra_tendencia>
<venta>8175</venta>
<venta_tendencia>up.png</venta_tendencia>
</moneda>
<actualizacion>08/03/2024 - 09:07</actualizacion>
</cotizaciones>

0 comments on commit 21d07b1

Please sign in to comment.