public class StockMonitor { | |
private final Alert alert; | |
public StockMonitor(Alert alert) { | |
this.alert = alert; | |
} | |
public void productSold(int productId, int quantity) { | |
String baseURL = "https://6hr1390c1j.execute-api.us-east-2.amazonaws.com/default/product"; | |
Map<String, Object> params = new HashMap<>() {{ | |
put("id", productId); | |
}}; | |
String paramString = "?"; | |
for (String key : params.keySet()) { | |
paramString += key + "=" + params.get(key).toString() + "&"; | |
} | |
HttpRequest request = HttpRequest | |
.newBuilder(URI.create(baseURL + paramString)) | |
.build(); | |
String result = ""; | |
HttpClient httpClient = HttpClient.newHttpClient(); | |
HttpResponse<String> response = null; | |
try { | |
response = httpClient.send(request, HttpResponse.BodyHandlers.ofString()); | |
result = response.body(); | |
} catch (IOException | InterruptedException e) { | |
e.printStackTrace(); | |
} | |
Product product = new Gson().fromJson(result, Product.class); | |
Calendar calendar = Calendar.getInstance(); | |
calendar.setTime(Calendar.getInstance().getTime()); | |
Date endDate = calendar.getTime(); | |
calendar.add(Calendar.DATE, -30); | |
Date startDate = calendar.getTime(); | |
DateFormat format = new SimpleDateFormat("M/d/yyyy"); | |
Map<String, Object> params1 = new HashMap<>(){{ | |
put("productId", product.getId()); | |
put("startDate", format.format(startDate)); | |
put("endDate", format.format(endDate)); | |
put("action", "total"); | |
}}; | |
String paramString1 = "?"; | |
for (String key : params1.keySet()) { | |
paramString1 += key + "=" + params1.get(key).toString() + "&"; | |
} | |
HttpRequest request1 = HttpRequest | |
.newBuilder(URI.create("https://gjtvhjg8e9.execute-api.us-east-2.amazonaws.com/default/sales" + paramString1)) | |
.build(); | |
String result1 = ""; | |
HttpClient httpClient1 = HttpClient.newHttpClient(); | |
HttpResponse<String> response1 = null; | |
try { | |
response1 = httpClient1.send(request1, HttpResponse.BodyHandlers.ofString()); | |
result1 = response1.body(); | |
} catch (IOException | InterruptedException e) { | |
e.printStackTrace(); | |
} | |
SalesTotal total = new Gson().fromJson(result1, SalesTotal.class); | |
if(product.getStock() - quantity <= (int) ((double) (total.getTotal() / 30) * product.getLeadTime())) | |
alert.send(product); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment