package com.kdcloud.ext.rehab.doctor; import java.util.ArrayList; 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.RehabDoctor; import com.kdcloud.ext.rehab.db.RehabUser; import com.kdcloud.ext.rehab.user.XMLUtils; public class LoginRehabDoctorRestlet extends RehabDoctorServerResource { public static final String URI = "/rehabdoctor/loginrehabdoctor"; @Post("xml") public Representation acceptItem(Representation entity) { DomRepresentation result = null; Document d = null; try { String username = rehabDoctor.getUsername(); 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(RehabUser.class); } catch (Exception e) { } Objectify ofy = ObjectifyService.begin(); Key<RehabDoctor> doctor = new Key<RehabDoctor>(RehabDoctor.class, username); Map<String, String> map = new LinkedHashMap<String, String>(); if (!username.equals(u)) { map.put("login", "doctor login error"); d = XMLUtils.createXMLResult("loginrehabdoctorOutput", map, d); } else { Element root = d.createElement("loginrehabdoctorOutput"); d.appendChild(root); root.setAttribute("username", rehabDoctor.getUsername()); root.setAttribute("firstname", rehabDoctor.getFirstName()); root.setAttribute("lastname", rehabDoctor.getLastName()); List<RehabUser> l = new ArrayList<RehabUser>(); l = ofy.query(RehabUser.class).filter("doctor", doctor)//.order("-date")//data decrescente .list(); Element eltName4 = d.createElement("rehab_users_list"); for (RehabUser us : l) { Element userElement = d.createElement("user"); userElement.setAttribute("username", "" + us.getUsername()); userElement.setAttribute("firstname", "" + us.getFirstName()); userElement.setAttribute("lastname", "" + us.getLastName()); userElement.setAttribute("registrationdate", "" + us.getRegistrationDate().toGMTString()); eltName4.appendChild(userElement); } root.appendChild(eltName4); d.normalizeDocument(); } } catch (Exception e) { result = XMLUtils .createXMLError("doctor login error", "" + e.getMessage()); } return result; } }