package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import business.Utilisateur;
import business.utilities.Ami_Package;
import com.cedarsoftware.util.io.JsonWriter;
import dao.DaoAmitie;
public class S_FriendAction extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("json");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String action = request.getParameter("action");
Utilisateur utilisateur = (Utilisateur) request.getSession().getAttribute("utilisateur");
// Renvoi des demandes d'ami non répondues.
if(action == null || action.equals("")) {
List<Ami_Package> json = new ArrayList<Ami_Package>();
List<Utilisateur> demandeurs = DaoAmitie.getDemandesAmiRecues(utilisateur.getId_utilisateur());
if(demandeurs != null && !demandeurs.isEmpty()) {
for(Utilisateur d : demandeurs) {
Ami_Package ap = new Ami_Package();
ap.update(utilisateur, d);
json.add(ap);
}
}
List<Utilisateur> cibles = DaoAmitie.getDemandesAmiFaites(utilisateur.getId_utilisateur());
if(cibles != null && !cibles.isEmpty()) {
for(Utilisateur c : cibles) {
Ami_Package ap = new Ami_Package();
ap.update(utilisateur, c);
json.add(ap);
}
}
if(!json.isEmpty())
out.print(JsonWriter.objectToJson(json));
else
out.print("{}");
}
else {
int id_ami = Integer.valueOf(request.getParameter("id_ami"));
// Nouvelle demande d'ami.
if(action.equals("ajouter")) {
if(DaoAmitie.demanderAmi(utilisateur.getId_utilisateur(), id_ami))
out.print("{}");
else
response.setStatus(599);
}
// Accepter une demande d'ami.
else if(action.equals("accepter")) {
if(DaoAmitie.accepterAmi(utilisateur.getId_utilisateur(), id_ami))
out.print("{}");
else
response.setStatus(598);
}
// Refuser une demande d'ami.
else if(action.equals("refuser")) {
if(DaoAmitie.refuserAmi(utilisateur.getId_utilisateur(), id_ami))
out.print("{}");
else
response.setStatus(597);
}
// Supprimer un ami.
else if(action.equals("supprimer")) {
if(DaoAmitie.supprimerAmi(utilisateur.getId_utilisateur(), id_ami))
out.print("{}");
else
response.setStatus(596);
}
}
out.close();
}
}