package crmdna.client.isha;
import com.google.api.server.spi.config.Api;
import com.google.api.server.spi.config.ApiMethod;
import com.google.api.server.spi.config.ApiMethod.HttpMethod;
import com.google.appengine.api.users.User;
import crmdna.attendance.AttendanceFactory;
import crmdna.attendance.CheckInMemberProp;
import crmdna.attendance.IAttendance;
import crmdna.common.Utils;
import crmdna.common.api.APIResponse;
import crmdna.common.api.APIResponse.Status;
import crmdna.common.api.APIUtils;
import crmdna.common.api.RequestInfo;
import javax.annotation.Nullable;
import javax.inject.Named;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Api(name = "isha")
public class IshaAttendanceApi {
@ApiMethod(path = "getMembersForCheckIn", httpMethod = HttpMethod.GET)
public APIResponse getMembersForCheckIn(@Named("searchStr") String searchStr,
@Named("programId") long programId, @Named("sessionDateYYYYMMDD") int sessionDateYYYYMMDD,
@Named("maxResultsSize") Integer maxResultsSize,
@Nullable @Named("showStackTrace") Boolean showStackTrace, HttpServletRequest req, User user) {
String login = null;
try {
if (maxResultsSize == null)
maxResultsSize = 25; // default value
IAttendance impl = AttendanceFactory.getImpl("isha");
login = Utils.getLoginEmail(user);
List<CheckInMemberProp> checkInMemberProps =
impl.getMembersForCheckIn(searchStr, programId, sessionDateYYYYMMDD, 25, login);
return new APIResponse().status(Status.SUCCESS).object(checkInMemberProps);
} catch (Exception ex) {
return APIUtils.toAPIResponse(ex, showStackTrace,
new RequestInfo().client("isha").login(login).req(req));
}
}
}