package crmdna.api.servlet;
import crmdna.attendance.AttendanceFactory;
import crmdna.attendance.CheckInMemberProp;
import crmdna.attendance.IAttendance;
import crmdna.common.api.APIResponse;
import crmdna.common.api.APIResponse.Status;
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.List;
public class AttendanceServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException {
// Logger LOGGER = Logger.getLogger(LoginServlet.class.getName());
String action = request.getParameter("action");
if (action == null) {
ServletUtils.setJson(response, new APIResponse().status(Status.ERROR_RESOURCE_NOT_FOUND));
} else {
String client = request.getParameter("client");
if (client == null)
client = "isha";
String login = ServletUtils.getLogin(request);
try {
if (action.equals("checkin")) {
IAttendance impl = AttendanceFactory.getImpl(client);
int numCheckins =
impl.checkin(ServletUtils.getLongParam(request, "memberId"),
ServletUtils.getLongParam(request, "programId"),
ServletUtils.getIntParam(request, "sessionDateYYYYMMDD"),
ServletUtils.getIntParam(request, "batchNo"), ServletUtils.getLogin(request));
ServletUtils.setJson(response, new APIResponse().status(Status.SUCCESS).object(numCheckins));
} else if (action.equals("getNumCheckins")) {
IAttendance impl = AttendanceFactory.getImpl(client);
int numCheckins =
impl.getNumCheckins(ServletUtils.getLongParam(request, "programId"),
ServletUtils.getIntParam(request, "sessionDateYYYYMMDD"),
ServletUtils.getIntParam(request, "batchNo"));
ServletUtils.setJson(response, new APIResponse().status(Status.SUCCESS).object(numCheckins));
} else if (action.equals("getMembersForCheckin")) {
IAttendance impl = AttendanceFactory.getImpl(client);
Integer maxResultSize = ServletUtils.getIntParam(request, "maxResultSize");
if (maxResultSize == null)
maxResultSize = 10;
List<CheckInMemberProp> checkInMemberProps =
impl.getMembersForCheckIn(request.getParameter("searchStr"),
ServletUtils.getLongParam(request, "programId"),
ServletUtils.getIntParam(request, "sessionDateYYYYMMDD"), maxResultSize, login);
ServletUtils.setJson(response, new APIResponse().status(Status.SUCCESS).object(checkInMemberProps));
} else {
ServletUtils.setJson(response, new APIResponse().status(Status.ERROR_RESOURCE_INCORRECT));
}
} catch (Exception ex) {
ServletUtils.setJson(response, APIUtils.toAPIResponse(ex, true, new RequestInfo().client(client).req(request).login(login)));
}
}
}
}