package com.kdcloud.ext.rehab.user; import java.util.List; import org.restlet.data.MediaType; import org.restlet.ext.xml.DomRepresentation; import org.restlet.representation.Representation; import org.restlet.resource.Post; import org.w3c.dom.Document; import org.w3c.dom.Element; import com.googlecode.objectify.Key; import com.googlecode.objectify.Objectify; import com.googlecode.objectify.ObjectifyService; import com.kdcloud.ext.rehab.db.CompleteExercise; import com.kdcloud.ext.rehab.db.RehabUser; import com.kdcloud.ext.rehab.db.UserScheduling; public class GetSchedulingRestlet extends RehabServerResource { public static final String URI = "/rehab/getscheduling"; @Post("xml") public Representation acceptItem(Representation entity) { DomRepresentation result = null; Document d = null; try { DomRepresentation input = new DomRepresentation(entity); Document doc = input.getDocument(); // handle input document Element rootEl = doc.getDocumentElement(); String u = XMLUtils.getTextValue(rootEl, "username"); // output result = new DomRepresentation(MediaType.TEXT_XML); d = result.getDocument(); try { ObjectifyService.register(CompleteExercise.class); } catch (Exception e) { } Objectify ofy = ObjectifyService.begin(); Key<RehabUser> us = new Key<RehabUser>(RehabUser.class, u); try { ObjectifyService.register(UserScheduling.class); } catch (Exception e) { } ofy = ObjectifyService.begin(); List<UserScheduling> schedulingList = ofy .query(UserScheduling.class).filter("user", us) .order("startDate").list(); if (schedulingList != null) { if (schedulingList.size() > 0) { Element root = d.createElement("getuserschedulingOutput"); d.appendChild(root); for (UserScheduling s : schedulingList) { Element taskEl = d.createElement("task"); taskEl.setAttribute("startdate", s.getStartDate() .toGMTString()); taskEl.setAttribute("enddate", s.getEndDate() .toGMTString()); taskEl.setAttribute("user", u); CompleteExercise ex = ofy.get(s.getExercise()); taskEl.setAttribute("exercise_name", ex.getName()); taskEl.setAttribute("exercise_number", "" + ex.getNumber()); root.appendChild(taskEl); } d.normalizeDocument(); }else{ result = XMLUtils .createXMLError("get user scheduling", "list size = 0"); } } else { result = XMLUtils .createXMLError("get user scheduling", "list = null"); } } catch (Exception e) { result = XMLUtils.createXMLError("get user scheduling", "" + e.getMessage()); } return result; } }