package admin; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import persistency.entities.gamification.PointsCategory; import persistency.entities.gamification.PointsInstance; import persistency.exposed.PointsExposed; import persistency.exposed.json.PointsInstanceJson; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; /** * Servlet implementation class Codes */ public class Codes extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PointsExposed pe = new PointsExposed(); List<PointsInstance> allCodes = pe.allCodes(); List<PointsInstance> result = new ArrayList<PointsInstance>(); String categoryStr = request.getParameter("category"); boolean nl = request.getParameter("nl") != null; if(categoryStr != null){ for (PointsInstance pointsInstance : allCodes) { if(pointsInstance.getCategory().getShortid().equals(categoryStr)){ result.add(pointsInstance); } } } else { result.addAll(allCodes); } Gson g = new Gson(); if(nl){ for (PointsInstance pointsInstance : result) { response.getWriter().println(pointsInstance.getCode()); } } else { response.getWriter().print(g.toJson(toJsonObject(result))); } } private List<PointsInstanceJson> toJsonObject(List<PointsInstance> allCodes) { List<PointsInstanceJson> result = new ArrayList<PointsInstanceJson>(); for (PointsInstance pointsInstance : allCodes) { result.add(new PointsInstanceJson(pointsInstance)); } return result; } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Gson g= new Gson(); List<PointsInstanceJson> codesToUpdate = g.fromJson(req.getReader(), new TypeToken<List<PointsInstanceJson>>(){}.getType()); if(codesToUpdate != null){ PointsExposed pe = new PointsExposed(); for (PointsInstanceJson pointsInstanceJson : codesToUpdate) { PointsInstance p = pe.fingById(pointsInstanceJson.getId()); if(p!= null && pointsInstanceJson.getCode() != null && pointsInstanceJson.getCode().trim().length() == p.getCategory().getCodeLength()){ p.setCode(pointsInstanceJson.getCode()); pe.updateEntity(p); } } } } }