package com.kdcloud.ext.rehab.user;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
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.DualModeSession;
import com.kdcloud.ext.rehab.db.CompleteExercise;
import com.kdcloud.ext.rehab.db.RehabUser;
import com.kdcloud.server.entity.User;
import com.kdcloud.server.rest.resource.KDServerResource;
public class InsertDualModeSessionRestlet extends RehabServerResource {
public static final String URI = "/rehab/insertdualmodesession";
@Post("xml")
public Representation acceptItem(Representation entity) {
DomRepresentation result = null;
Document d = null;
try {
String username = rehabUser.getUsername();
DomRepresentation input = new DomRepresentation(entity);
Document doc = input.getDocument();
// handle document input
Element rootEl = doc.getDocumentElement();
String name = XMLUtils.getTextValue(rootEl, "name");
int num = XMLUtils.getIntValue(rootEl, "number");
Date data = new Date();
try {
ObjectifyService.register(DualModeSession.class);
ObjectifyService.register(CompleteExercise.class);
} catch (Exception e) {
}
Objectify ofy = ObjectifyService.begin();
DualModeSession dms;
Key<RehabUser> us = new Key<RehabUser>(RehabUser.class, username);
// List<EsercizioCompleto> l = new ArrayList<EsercizioCompleto>();
// l = ofy.query(EsercizioCompleto.class)
// .filter("numero", numeroEsercizio).list();
// EsercizioCompleto esercizio = null;
//
// for(EsercizioCompleto es: l){
// if(es.getPaziente().equals(paz) && es.getNome().equals(es.getNome())){
// esercizio = es;
// break;
// }
// }
CompleteExercise exercise = ofy.query(CompleteExercise.class)
.filter("number", num).filter("rehabuser", us)
.filter("name", name).get();
Key<CompleteExercise> es = new Key<CompleteExercise>(CompleteExercise.class, exercise.getId());
dms = new DualModeSession();
dms.setStartDate(data);
dms.setRehabUser(us);
dms.setExercise(es);
ofy.put(dms);
// output
result = new DomRepresentation(MediaType.TEXT_XML);
d = result.getDocument();
Map<String, String> map = new HashMap<String, String>();
map.put("dualmode_saved", "OK");
d = XMLUtils.createXMLResult("insertdualmodesessionOutput", map, d);
} catch (Exception e) {
result = XMLUtils.createXMLError("insert dual mode session error",
"" + e.getMessage());
}
return result;
}
}