Actions.GetCommandeLAction.java Source code

Java tutorial

Introduction

Here is the source code for Actions.GetCommandeLAction.java

Source

/*
 * 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.
 */
package Actions;

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.insa.gustatif.metier.modele.Client;
import com.insa.gustatif.metier.modele.Commande;
import com.insa.gustatif.metier.modele.Livreur;
import com.insa.gustatif.metier.modele.Produit;
import com.insa.gustatif.metier.modele.ProduitCommande;
import com.insa.gustatif.metier.modele.Restaurant;
import com.insa.gustatif.metier.service.ServiceMetier;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author julia
 */
public class GetCommandeLAction extends Action {
    @Override
    public void execute(HttpServletRequest request, HttpServletResponse reponse) {
        System.out.println("dans action GetCommandeLAction");

        // rcupration des infos pour l'id du livreur donne 
        long idLivreur = Long.parseLong(request.getParameter("idLivreur"));
        System.out.println("id lireur " + idLivreur);
        Livreur livreur = ServiceMetier.connexionLivreur(idLivreur);

        Commande commande = livreur.getCmdeEnCours();

        // Les adresses stockes dans un tableau (je comprends pas pq on ne peut stocker direct des objet non
        // tableau dans un container (qui conteint au moin sun autre tableau ???)
        JsonArray adressesJson = new JsonArray();

        // L'adresse client 
        JsonObject adrC = new JsonObject();
        Client client = commande.getClient();
        System.out.println("adresse vlien : " + client.getAdresse());
        adrC.addProperty("a", client.getAdresse());
        adrC.addProperty("adresse2", client.getAdresse());
        adressesJson.add(adrC);

        // L'adresse resto
        adrC = new JsonObject();
        Restaurant resto = commande.getRestaurant();
        adrC.addProperty("a", resto.getAdresse());
        adrC.addProperty("adresse2", client.getAdresse());
        adressesJson.add(adrC);

        // Les produits : chacun a un nom et une quantit
        JsonArray jsonListeP = new JsonArray();
        List<ProduitCommande> produits = commande.getProduitCommande();
        for (ProduitCommande pc : produits) {
            JsonObject jsonProduitCommande = new JsonObject();
            jsonProduitCommande.addProperty("nom", pc.getProduit().getDenomination());
            jsonProduitCommande.addProperty("quantite", pc.getQte());
            jsonListeP.add(jsonProduitCommande);
        }

        // Ajout des donnes dans un container
        JsonObject jsonContainer = new JsonObject();
        jsonContainer.add("produits", jsonListeP);
        jsonContainer.add("adr", adressesJson);

        // Envoi de la rponse
        reponse.setContentType("text/html;charset=UTF-8");
        PrintWriter out = null;
        try {
            out = reponse.getWriter();
        } catch (IOException ex) {
            Logger.getLogger(GetRestaurantsAction.class.getName()).log(Level.SEVERE, null, ex);
        }
        out.println(jsonContainer);
        out.close();

    }
}