package com.extensiblejava.restaudit;
import com.extensiblejava.audit.*;
import java.math.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
public class RestAuditFacade implements AuditFacade {
public BigDecimal audit(Auditable auditable) throws AuditException {
try {
//URL url = new URL("http://localhost:4567/audit?amount=" + auditable.getAmount().setScale(2, BigDecimal.ROUND_UP).toString());
URL url = new URL("http://cryptic-fjord-37158.herokuapp.com/audit?amount=" + auditable.getAmount().setScale(2, BigDecimal.ROUND_UP).toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
String output = br.readLine();
int begLoc = output.indexOf(":");
int endLoc = output.indexOf("}");
String newString = output.substring(begLoc+2,endLoc-1);
//System.out.println(output);
//System.out.println("---- " + newString + "----");
conn.disconnect();
return new BigDecimal(newString);
} catch (MalformedURLException e) {
e.printStackTrace();
throw new AuditException();
} catch (IOException e) {
e.printStackTrace();
throw new AuditException();
}
}
}