/*
* 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 org.waterforpeople.mapping.app.web.dto;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import com.gallatinsystems.framework.rest.RestError;
import com.gallatinsystems.framework.rest.RestRequest;
/**
* data structure for rest api calls to the point of interest service
*
* @author Mark Tiele Westra
*/
public class SurveyedLocaleRequest extends RestRequest {
private static final long serialVersionUID = 2511688888372190068L;
private static final String SURVEY_GROUP_ID_PARAM = "surveyGroupId";
private static final String IMEI_PARAM = "imei";
private static final String PHONE_NUMBER_PARAM = "phoneNumber";
private static final String ANDROID_ID_PARAM = "androidId";
private static final String DEVICE_ID_PARAM = "deviceId";
private static final String LAST_UPDATE_TIME_PARAM = "lastUpdateTime";
private static final String CURSOR_PARAM = "cursor";
private Long surveyGroupId;
private String imei;
private String phoneNumber;
private String androidId;
private String deviceId;
private Date lastUpdateTime;
private String cursor;
@Override
protected void populateErrors() {
// TODO do a better job in error population
if (surveyGroupId == null) {
addError(new RestError(RestError.MISSING_PARAM_ERROR_CODE, "parameter wrong",
"missing surveyGroupId"));
}
}
@Override
protected void populateFields(HttpServletRequest req) throws Exception {
surveyGroupId = Long.parseLong(req.getParameter(SURVEY_GROUP_ID_PARAM));
imei = req.getParameter(IMEI_PARAM);
phoneNumber = req.getParameter(PHONE_NUMBER_PARAM);
androidId = req.getParameter(ANDROID_ID_PARAM);
deviceId = req.getParameter(DEVICE_ID_PARAM);
cursor = req.getParameter(CURSOR_PARAM);
if (req.getParameter(LAST_UPDATE_TIME_PARAM) != null) {
try {
Long ts = Long.parseLong(req.getParameter(LAST_UPDATE_TIME_PARAM));
setLastUpdateTime(new Date(ts));
} catch (Exception e) {
addError(new RestError(RestError.BAD_DATATYPE_CODE,
RestError.BAD_DATATYPE_MESSAGE, LAST_UPDATE_TIME_PARAM
+ " not a valid timestamp"));
}
}
}
public Long getSurveyGroupId() {
return surveyGroupId;
}
public void setSurveyGroupId(Long surveyGroupId) {
this.surveyGroupId = surveyGroupId;
}
public String getImei() {
return imei;
}
public void setImei(String imei) {
this.imei = imei;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getAndroidId() {
return androidId;
}
public void setAndroidId(String androidId) {
this.androidId = androidId;
}
public String getDeviceId() {
return deviceId;
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
}
public String getCursor() {
return cursor;
}
public void setCursor(String cursor) {
this.cursor = cursor;
}
public Date getLastUpdateTime() {
return lastUpdateTime;
}
public void setLastUpdateTime(Date lastUpdateTime) {
this.lastUpdateTime = lastUpdateTime;
}
}