V1_0.java [src/java/d/wqm/wqm29_getfertplacelist] Revision: Date:
/*
* $Id$
*
* This file is part of the Cloud Services Integration Platform (CSIP),
* a Model-as-a-Service framework, API, and application suite.
*
* 2012-2017, OMSLab, Colorado State University.
*
* OMSLab licenses this file to you under the MIT license.
* See the LICENSE file in the project root for more information.
*/
package d.wqm.wqm29_getfertplacelist;
import csip.ModelDataService;
import csip.api.server.ServiceException;
import csip.annotations.Polling;
import csip.annotations.Resource;
import java.sql.Connection;
import java.sql.SQLException;
import javax.ws.rs.Path;
import csip.annotations.Description;
import csip.annotations.Name;
import csip.utils.JSONUtils;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;
import wqm.utils.DBQueries;
import wqm.utils.DBResources;
/**
* WQM-29: Fetch List of Fertilizer Placement Choices
*
* @version 1.0
* @author RUMPAL SIDHU
*/
@Name("WQM-29: Fetch List of Fertilizer Placement Choices")
@Description("This service fetches a list of fertilizer placement choices")
@Path("d/wqm/getfertplacelist/1.0")
@Polling(first = 10000, next = 2000)
@Resource(from = DBResources.class)
public class V1_0 extends ModelDataService {
private HashMap<Integer, String> fertilizerPlacement = new HashMap<>();
@Override
protected void doProcess() throws SQLException, ServiceException {
try (Connection connection = resources().getJDBC(DBResources.SSURGO_ID);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(DBQueries.WQM29Query())) {
while (resultSet.next()) {
int id = resultSet.getInt("id");
String placement = resultSet.getString("placement");
fertilizerPlacement.put(id, placement);
}
}
}
@Override
protected void postProcess() throws JSONException {
JSONArray placementArray = new JSONArray();
for (Integer id : fertilizerPlacement.keySet()) {
JSONArray placementArr = new JSONArray();
placementArr.put(JSONUtils.data("id", id));
placementArr.put(JSONUtils.data("placement", fertilizerPlacement.get(id)));
placementArray.put(placementArr);
}
results().put("Fertilizer Placement List", placementArray);
}
}