Controllers.MurController.java Source code

Java tutorial

Introduction

Here is the source code for Controllers.MurController.java

Source

package Controllers;

import DAO.StatutsEntity;
import Service.ConnexionService;
import Service.FichierService;
import Service.MessageService;
import Service.MurService;
import Service.ProfilService;
import Service.StatutsService;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.http.Part;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Olivier
 */
@Controller
public class MurController {

    @Autowired
    MurService murService;

    @Autowired
    ProfilService profilService;

    @Autowired
    ConnexionService connexionService;

    @Autowired
    ServletContext servletContext;

    @Autowired
    FichierService fichierService;

    @Autowired
    StatutsService statutsService;

    @Autowired
    MessageService messagesService;

    // Gestion des requtes GET ====================================================
    // Ajout d'un lger
    @RequestMapping(value = "{path}/leger", method = RequestMethod.GET)
    public ModelAndView legerStatut(HttpServletRequest request, HttpServletResponse response,
            @PathVariable String path) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        }
        // Rcupration de l'id de l'utilisateur courant
        int idUtilisateur = (int) session.getAttribute("idUtilisateur");
        int idPersonne = Integer.parseInt(request.getParameter("idPersonne"));

        // Rcupration de l'id du statut sur lequel l'action est effectue
        int idStatut = Integer.parseInt(request.getParameter("id"));

        // Gestion de l'ajout de lger
        murService.addLeger(idStatut, idUtilisateur);

        mv = getRedirect(path, idPersonne, idStatut);
        return mv;
    }

    // Ajout d'un lourd
    @RequestMapping(value = "{path}/lourd", method = RequestMethod.GET)
    public ModelAndView lourdStatut(HttpServletRequest request, HttpServletResponse response,
            @PathVariable String path) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        }

        // Rcupration de l'id de l'utilisateur courant
        int idUtilisateur = (int) session.getAttribute("idUtilisateur");
        int idPersonne = Integer.parseInt(request.getParameter("idPersonne"));

        // Rcupration de l'id du statut sur lequel l'action est effectue
        int idStatut = Integer.parseInt(request.getParameter("id"));

        // Gestion de l'ajout de lourd
        murService.addLourd(idStatut, idUtilisateur);

        mv = getRedirect(path, idPersonne, idStatut);
        return mv;
    }

    // Suppression d'un lger/lourd
    @RequestMapping(value = "{path}/removeAction", method = RequestMethod.GET)
    public ModelAndView removeAction(HttpServletRequest request, HttpServletResponse response,
            @PathVariable String path) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        }

        // Rcupration de l'id de l'utilisateur courant
        int idUtilisateur = (int) session.getAttribute("idUtilisateur");
        int idPersonne = Integer.parseInt(request.getParameter("idPersonne"));

        // Rcupration de l'id du statut sur lequel l'action est effectue
        int idStatut = Integer.parseInt(request.getParameter("id"));

        // Gestion de la suppression de l'action
        murService.removeAction(idStatut, idUtilisateur);

        mv = getRedirect(path, idPersonne, idStatut);
        return mv;
    }

    // Gestion des mthodes POST ===================================================
    // Ajout d'un statut
    @RequestMapping(value = "{path}/ajoutStatut", method = RequestMethod.POST)
    public ModelAndView ajoutStatut(HttpServletRequest request, HttpServletResponse response,
            @PathVariable String path) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        }
        Part p = request.getPart("file");
        // Rcupration de l'id de l'utilisateur courant
        int idUtilisateur = (int) session.getAttribute("idUtilisateur");

        int idPersonne = Integer.parseInt(request.getParameter("idPersonne"));

        // Rcupration du texte du statut post
        String statut = request.getParameter("statut");

        // Ajout du statut
        int idStatut = 0;
        if (idPersonne == idUtilisateur) {
            idStatut = murService.ajoutStatut(idUtilisateur, statut);
        } else {
            idStatut = murService.posterStatut(idUtilisateur, idPersonne, statut);
        }

        if (p.getSize() != 0 && idStatut != 0) {
            fichierService.ajoutFichier(p, idStatut);
        }

        mv = getRedirect(path, idPersonne, idStatut);
        return mv;
    }

    // Gestion des mthodes mixtes==================================================
    // Affichage du mur
    @RequestMapping(value = "mur", method = { RequestMethod.POST, RequestMethod.GET })
    public ModelAndView afficheMur(HttpServletRequest request, HttpServletResponse response) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        } else {
            // Rcupration de l'id de l'utilisateur
            int idUtilisateur = (int) session.getAttribute("idUtilisateur");

            // Cration du modelAndView mur pour l'affichage
            mv = new ModelAndView("mur");

            // Cration de l'affichage
            // Rcupration du nom de l'utilisauter
            String nomPersonne = profilService.getPersonne(idUtilisateur).getNom();

            // Rcupration des Filous de la personne
            // Rcupration des statuts des Filous
            List<StatutsEntity> statut = statutsService.getStatuts(idUtilisateur);

            String selectUserList = profilService.getSelectUserList(idUtilisateur);

            // Affichage des diffrentes donnes rcupres prcdemment
            mv.addObject("listFilous", profilService.getFilous(idUtilisateur));
            mv.addObject("nomPersonne", nomPersonne);
            mv.addObject("listStatuts", statut);
            mv.addObject("selectUserList", selectUserList);
            mv.addObject("user", Integer.toString(idUtilisateur));
            mv.addObject("idPersonne", idUtilisateur);
            mv.addObject("idDestinataire", -1);

            return mv;
        }

    }

    // Affichage des statuts d'un utilisateur
    @RequestMapping(value = "statuts", method = RequestMethod.GET)
    public ModelAndView afficheStatuts(HttpServletRequest request, HttpServletResponse response) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        } else {

            // Rcupration de l'id de l'utilisateur
            int idUtilisateur = (int) session.getAttribute("idUtilisateur");

            int idPersonne = Integer.parseInt(request.getParameter("idPersonne"));

            // Cration du modelAndView mur pour l'affichage
            mv = new ModelAndView("statuts");

            // Cration de l'affichage
            // Rcupration du nom de l'utilisateur
            String nomPersonne = profilService.getPersonne(idPersonne).getNom();

            String statutsEmis = statutsService.getPersonneStatutsEmis(idUtilisateur, idPersonne);
            String statutsRecu = statutsService.getPersonneStatutsRecu(idUtilisateur, idPersonne);

            // Affichage des diffrentes donnes rcupres prcdemment
            mv.addObject("nomPersonne", nomPersonne);
            mv.addObject("listStatutsEmis", statutsEmis);
            mv.addObject("sizeStatutsEmis", statutsEmis.length());
            mv.addObject("listStatutsRecu", statutsRecu);
            mv.addObject("sizeStatutsRecu", statutsRecu.length());
            mv.addObject("idPersonne", idUtilisateur);
            ;
            mv.addObject("idProprietaire", idPersonne);
            mv.addObject("idDestinataire", -1);

            return mv;
        }

    }

    // Gestion des commentaires ====================================================
    @RequestMapping(value = "{path}/ajoutCommentaire", method = RequestMethod.POST)
    public ModelAndView ajoutCommentaire(HttpServletRequest request, HttpServletResponse response,
            @PathVariable String path) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        }

        // Rcupration de l'id de l'utilisateur courant
        int idUtilisateur = (int) session.getAttribute("idUtilisateur");
        int idPersonne = Integer.parseInt(request.getParameter("idPersonne"));
        // Rcupration de l'id du statut sur lequel on commente
        int idStatut = Integer.parseInt(request.getParameter("idStatut"));

        // Rcupration du texte du statut post
        String commentaire = request.getParameter("commentaire");
        // Ajout du statut
        murService.ajoutCommentaire(idUtilisateur, idStatut, commentaire);
        mv = getRedirect(path, idPersonne, idStatut);
        return mv;
    }

    //Gestion des messages
    @RequestMapping(value = "message", method = { RequestMethod.POST, RequestMethod.GET })
    public ModelAndView afficheMessage(HttpServletRequest request, HttpServletResponse response) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        }
        // Rcupration de l'id de l'utilisateur courant
        int idUtilisateur = (int) session.getAttribute("idUtilisateur");

        // Rcupration de l'id du destinataire
        int idDest;
        switch (request.getMethod()) {
        case "POST":
            idDest = Integer.parseInt(request.getParameter("idDestinataire"));
            break;
        case "GET":
        default:
            idDest = -1;
            break;
        }
        /*       if(request.getParameter("idDestinataire").length() != 0){
         int idDest = Integer.parseInt(request.getParameter("idDestinataire"));*/

        //String listFilous = profilService.getFilous();
        mv = new ModelAndView("messages");
        mv.addObject("idPersonne", idUtilisateur);
        mv.addObject("listFilous", profilService.getSelectUserList(idUtilisateur));
        if (idDest != -1) {
            mv.addObject("filou", profilService.getFilous(idUtilisateur));
            mv.addObject("listMessages", messagesService.getMessagesSinglePersonne(idUtilisateur, idDest));
        }
        mv.addObject("idDestinataire", idDest);
        // Affichage de la page
        return mv;
    }

    //Gestion des messages
    @RequestMapping(value = "{path}/ajoutMessage", method = RequestMethod.POST)
    public ModelAndView ajoutMessage(HttpServletRequest request, HttpServletResponse response,
            @PathVariable String path) throws Exception {

        ModelAndView mv;

        // Rcupration de la session
        HttpSession session = request.getSession(false);

        // Accs sans tre connect
        if (session == null || session.getAttribute("idUtilisateur") == null) {
            mv = new ModelAndView("connexion");
            mv.addObject("inscriptionMessage", "Veuillez vous connecter pour accder  cette page");
            return mv;
        }
        // Rcupration de l'id de l'utilisateur courant
        int idUtilisateur = (int) session.getAttribute("idUtilisateur");

        int idDest = Integer.parseInt(request.getParameter("idDestinataire"));

        // Rcupration du texte du statut post
        String message = request.getParameter("message");

        // Ajout du statut
        messagesService.envoyerMessage(idUtilisateur, idDest, message);

        // Affichage du mur
        mv = getRedirect(path, idDest, -1);
        return mv;
    }

    // Gestion de la redirection des pages
    private ModelAndView getRedirect(String path, int idPersonne, int idStatut) {
        switch (path) {
        case "statut":
            return new ModelAndView("redirect:/statuts.htm?idPersonne=" + idPersonne);
        case "vueNotif":
            return new ModelAndView("redirect:/vueNotif.htm?idObject=" + idStatut);
        case "messages":
            return new ModelAndView("redirect:/message.htm?idDestinataire=" + idPersonne);
        case "mur":
        default:
            return new ModelAndView("redirect:/mur.htm");
        }
    }

}