response.setContentType("json");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String action = request.getParameter("action");
Utilisateur utilisateur = (Utilisateur) request.getSession().getAttribute("utilisateur");
// Renvoie les défis en cours.
if(action == null || action.equals("")) {
// Renvoie les défis en cours.
List<Defi_Package> json = new ArrayList<Defi_Package>();
List<Defi> defisFaits = utilisateur.getDefisFaits();
if(defisFaits != null && !defisFaits.isEmpty()) {
for(Defi d : defisFaits) {
Defi_Package dp = new Defi_Package();
dp.update(d, utilisateur);
json.add(dp);
}
}
List<Defi> defisRecus = utilisateur.getDefisRecus();
if(defisRecus != null && !defisRecus.isEmpty()) {
for(Defi d : defisRecus) {
Defi_Package dp = new Defi_Package();
dp.update(d, utilisateur);
json.add(dp);
}
}
if(!json.isEmpty())
out.print(JsonWriter.objectToJson(json));
else
out.print("{}");
}
else {
// Nouveau défi.
if(action.equals("ajouter")) {
int id_cible = Integer.valueOf(request.getParameter("id_cible"));
int id_pariDemandeur = Integer.valueOf(request.getParameter("id_pari"));
if(utilisateur.ajouterDefi(id_cible, id_pariDemandeur))
out.print("{}");
else
response.setStatus(599);
}
// Accepter défi.
else if(action.equals("accepter")) {
int id_defi = Integer.valueOf(request.getParameter("id_defi"));
int mise = Integer.valueOf(request.getParameter("mise"));
int retard = Integer.valueOf(request.getParameter("retard"));
if(utilisateur.accepterDefi(id_defi, mise, retard))
out.print("{}");
else
response.setStatus(598);
}
else if(action.equals("refuser")) {
int id_defi = Integer.valueOf(request.getParameter("id_defi"));
if(utilisateur.refuserDefi(id_defi))
out.print("{}");
else
response.setStatus(597);
}
}