/*
* Copyright (C) 2014 Stichting Akvo (Akvo Foundation)
*
* This file is part of Akvo FLOW.
*
* Akvo FLOW is free software: you can redistribute it and modify it under the terms of
* the GNU Affero General Public License (AGPL) as published by the Free Software Foundation,
* either version 3 of the License or any later version.
*
* Akvo FLOW is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Affero General Public License included below for more details.
*
* The full license text can also be seen at <http://www.gnu.org/licenses/agpl.html>.
*/
package org.waterforpeople.mapping.app.web;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.waterforpeople.mapping.dao.DeviceApplicationDao;
import org.waterforpeople.mapping.domain.DeviceApplication;
public class ApkRedirectServlet extends HttpServlet {
private static final long serialVersionUID = 8394168365501522124L;
private static final String ANDROID = "androidPhone";
private static final String FIELDSURVEY = "fieldSurvey";
private static final String FLOWAPP = "flowapp";
private static final String SATSTAT = "satStat";
private static final String GPS_APP_PATH = "/gps";
private static final String FLOW_APP_PATH = "/app";
private static final String FLOW_APP2_PATH = "/app2";
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
IOException {
final DeviceApplicationDao dao = new DeviceApplicationDao();
String servletPath = req.getServletPath();
String appCode = "";
if (FLOW_APP_PATH.equals(servletPath)) {
appCode = FIELDSURVEY;
} else if (FLOW_APP2_PATH.equals(servletPath)) {
appCode = FLOWAPP;
} else if (GPS_APP_PATH.equals(servletPath)) {
appCode = SATSTAT;
}
final List<DeviceApplication> apps = dao
.listByDeviceTypeAndAppCode(ANDROID, appCode, 1);
if (apps == null
|| apps.size() == 0
|| StringUtils.isBlank(apps.get(0).getFileName())) {
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
resp.getWriter().append("NOT FOUND");
return;
}
resp.sendRedirect(apps.get(0).getFileName());
}
}