/*
* Copyright (C) 2010-2012 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 com.gallatinsystems.device.app.web;
import java.io.IOException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.gallatinsystems.device.dao.DeviceDAO;
import com.gallatinsystems.device.domain.Device;
import com.gallatinsystems.device.domain.DeviceSurveyJobQueue;
import com.gallatinsystems.survey.dao.DeviceSurveyJobQueueDAO;
/**
* Servlet class to handle the device (handheld) related management tasks.
*
* @deprecated
*/
public class DeviceManagerServlet extends HttpServlet {
private static final long serialVersionUID = 1979457951988807893L;
private static final Logger log = Logger
.getLogger(DeviceManagerServlet.class.getName());
private DeviceDAO deviceDao = new DeviceDAO();
public void doGet(HttpServletRequest req, HttpServletResponse resp) {
String action = req.getParameter("action");
if ("listDevices".equals(action)) {
DeviceSurveyJobQueueDAO dsjqDAO = new DeviceSurveyJobQueueDAO();
List<DeviceSurveyJobQueue> jobs = dsjqDAO.listAllJobsInQueue();
for (DeviceSurveyJobQueue item : jobs) {
try {
resp.getWriter().print(item.toString());
} catch (IOException e) {
log.log(Level.SEVERE, "Could not execute list device", e);
}
}
} else {
try {
resp.getWriter().print("need an action");
} catch (IOException e) {
log.log(Level.SEVERE, "Could not write error", e);
}
}
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) {
String action = req.getParameter("action");
String outputString = null;
if ("saveDevice".equals(action)) {
outputString = createDevice(req);
} else {
String devicePhoneNumber = req.getParameter("devicePhoneNumber");
Long surveyId = new Long(req.getParameter("surveyId"));
DeviceSurveyJobQueueDAO dsjqDAO = new DeviceSurveyJobQueueDAO();
DeviceSurveyJobQueue dsjq = new DeviceSurveyJobQueue();
dsjq.setDevicePhoneNumber(devicePhoneNumber);
dsjq.setSurveyID(surveyId);
Long deviceId = dsjqDAO.save(dsjq);
resp.setContentType("text/html");
outputString = "Device: " + deviceId + " created";
}
try {
resp.getWriter().print(outputString);
} catch (IOException e) {
log.log(Level.SEVERE, "Could not execute device operation", e);
}
}
@SuppressWarnings("unused")
private String createDevice(HttpServletRequest req) {
StringBuilder sb = new StringBuilder();
String deviceType = req.getParameter("deviceType");
String esn = req.getParameter("esn");
String inServiceDateString = req.getParameter("inServiceDateString");
String osVersion = req.getParameter("osVersion");
String countryIdString = req.getParameter("countryIdString");
String phoneNumber = req.getParameter("devicePhoneNumber");
String outServiceDateString = req.getParameter("outServiceDateString");
phoneNumber = phoneNumber.replace("-", "");
Device device = new Device();
device.setDeviceType(Device.DeviceType.CELL_PHONE_ANDROID);
device.setEsn(esn);
device.setPhoneNumber(phoneNumber);
deviceDao.save(device);
sb.append(device.toString());
return sb.toString();
}
}