package com.kdcloud.ext.rehab.doctor; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; 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.DualModeSession; import com.kdcloud.ext.rehab.db.RehabUser; import com.kdcloud.ext.rehab.user.XMLUtils; import com.kdcloud.server.entity.User; import com.kdcloud.server.rest.resource.KDServerResource; public class DownloadUserDualModeSessionsRestlet extends RehabDoctorServerResource{// KDServerResource { // public static final String URI = "/rehabdoctor/downloaduserdualmodesessions"; @Post("xml") public Representation acceptItem(Representation entity) { DomRepresentation result = null; Document d = null; try { DomRepresentation input = new DomRepresentation(entity); // input Document doc = input.getDocument(); Element rootEl = doc.getDocumentElement(); String username = XMLUtils.getTextValue(rootEl, "username"); try { ObjectifyService.register(DualModeSession.class); ObjectifyService.register(CompleteExercise.class); } catch (Exception e) { } Objectify ofy = ObjectifyService.begin(); Key<RehabUser> us = new Key<RehabUser>(RehabUser.class, username); List<DualModeSession> sessions = ofy.query(DualModeSession.class). filter("rehabuser", us).list(); result = new DomRepresentation(MediaType.TEXT_XML); d = result.getDocument(); if(sessions != null && sessions.size() > 0){ Element root = d.createElement("downloaduserdualmodesessionsOutput"); root.setAttribute("username", "" + username); d.appendChild(root); Element eltName4 = d.createElement("sessions_list"); for (DualModeSession session : sessions) { Element ses = d.createElement("session"); ses.setAttribute("startdate", "" + session.getStartDate().toGMTString()); CompleteExercise ex = ofy.get(session.getExercise()); ses.setAttribute("name", "" + ex.getName()); ses.setAttribute("number", "" + ex.getNumber()); eltName4.appendChild(ses); } root.appendChild(eltName4); d.normalizeDocument(); }else result = XMLUtils.createXMLError("download user sessions error", "no sessions found"); } catch (Exception e) { result = XMLUtils.createXMLError("download user sessions error", "" + e.getMessage()); } return result; } }