package crmdna.registration;
import crmdna.common.api.APIResponse;
import crmdna.common.api.APIUtils;
import crmdna.common.api.RequestInfo;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.logging.Logger;
@SuppressWarnings("serial")
public class RegistrationResult extends HttpServlet {
public void doOptions(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Methods", "POST");
resp.setHeader("Access-Control-Allow-Headers", "Content-Type");
resp.setHeader("Access-Control-Max-Age", "86400");
}
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
try {
RegistrationResultProp prop = new RegistrationResultProp();
prop.amount = req.getParameter("amount");
prop.ccy = req.getParameter("ccy");
prop.transactionId = req.getParameter("transactionId");
prop.status = req.getParameter("status");
String html = getHtml(prop);
resp.getWriter().println(html);
} catch (Exception ex) {
APIResponse apiResponse =
APIUtils.toAPIResponse(ex, true, new RequestInfo().req(req).client("not available"));
String errMessage =
"An error occurred. Please try again.\n\n" + "Error code: " + apiResponse.statusCode
+ "\nMessage: " + apiResponse.userFriendlyMessage + "\n\nStack trace: "
+ apiResponse.object;
Logger logger = Logger.getLogger(RegistrationResult.class.getName());
logger.warning(errMessage);
resp.getWriter().println(errMessage);
}
}
private String getHtml(RegistrationResultProp prop) {
StringBuilder builder = new StringBuilder();
builder.append("<h1>Registration Result</h1>");
builder.append("<br><b>Status:</b> ");
builder.append(prop.status);
builder.append("<br><b>Transaction Id:</b> ");
builder.append(prop.transactionId);
builder.append("<br><b>Amount Paid:</b> ");
builder.append(prop.amount + " " + prop.ccy);
return builder.toString();
}
private static class RegistrationResultProp {
String amount;
String ccy;
String transactionId;
String status;
}
}