package com.kirkk.extensiblejava.audit.restservice;
import static spark.Spark.*;
import com.google.gson.Gson;
import com.extensiblejava.audit.audit2.AuditFacade2;
import com.extensiblejava.audit.Auditable;
import static com.kirkk.extensiblejava.audit.restservice.JsonUtil.*;
import java.math.*;
public class Auditor {
public static void main(String[] args) {
port(getHerokuAssignedPort());
get("/", (req, res) -> "Welcome to the Auditor Service!");
//get("/hello", (req, res) -> "Hello, World!");
get("/audit", "application/json", (req, res) -> {
final String amount = req.queryParams("amount");
AuditFacade2 auditor = new AuditFacade2();
BigDecimal auditedAmt = auditor.audit(new Auditable() {
public BigDecimal getAmount() { return new BigDecimal(amount); }
});
return new Payment().setPayment(auditedAmt.setScale(2, BigDecimal.ROUND_UP).toString());
}, json());
/*get("/audit", "application/json", (req, res) -> {
String principle = req.queryParams("amount");
//return new Payment().setPayment(new LoanCalculator().calculatePayment(principle, rate, term));
}, json());*/
/*get("/loan", (req, res) -> {
return new Payment().setPayment(new LoanCalculator().calculatePayment("15000","6.0","60"));
}, json());*/
}
static int getHerokuAssignedPort() {
ProcessBuilder processBuilder = new ProcessBuilder();
if (processBuilder.environment().get("PORT") != null) {
return Integer.parseInt(processBuilder.environment().get("PORT"));
}
return 4567; //return default port if heroku-port isn't set (i.e. on localhost)
}
}