Skip to content
Snippets Groups Projects
StartServer.java 7.81 KiB
Newer Older
thtamagnau's avatar
thtamagnau committed
package com.uca;

import com.uca.dao._Initializer;
import com.uca.gui.*;
import com.uca.core.*;
import com.uca.entity.*;
Boris's avatar
Boris committed
import java.sql.Date;
thtamagnau's avatar
thtamagnau committed
import static spark.Spark.*;
Boris's avatar
Boris committed
import java.text.*;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;

thtamagnau's avatar
thtamagnau committed
public class StartServer {

Thomas Mewily's avatar
Thomas Mewily committed
    //.\gradlew run
Thomas Mewily's avatar
Thomas Mewily committed

    public static boolean authentified = false;
    public static ProfEntity connected = null;
Boris's avatar
Boris committed
    public static boolean verificationSession(spark.Request req)
    {
        String c = req.cookie("session-id");
        System.out.println(c);
Boris's avatar
Boris committed

        if (c == null) return false;
        else{
            return true;
        }
    }

Thomas Mewily's avatar
Thomas Mewily committed
    public static void displayLocalHost(int portNb, String suffix)
    {
        System.out.println("http://localhost:"+portNb+"/"+suffix);
    }
thtamagnau's avatar
thtamagnau committed
    public static void main(String[] args) {
Thomas Mewily's avatar
Thomas Mewily committed

        int portNb = 8081;
thtamagnau's avatar
thtamagnau committed
        //Configure Spark
        staticFiles.location("/static/");
Thomas Mewily's avatar
Thomas Mewily committed
        port(portNb);
thtamagnau's avatar
thtamagnau committed

Thomas Mewily's avatar
Thomas Mewily committed

thtamagnau's avatar
thtamagnau committed
        _Initializer.Init();

Thomas Mewily's avatar
Thomas Mewily committed
        // Debug:
        connected = _Initializer.DEBUG_BORIS_ADMIN;
        authentified = true;

thtamagnau's avatar
thtamagnau committed
        //Defining our routes
Thomas Mewily's avatar
Thomas Mewily committed
        displayLocalHost(portNb, "users");
thtamagnau's avatar
thtamagnau committed
        get("/users", (req, res) -> {
            return UserGUI.getAllUsers();
        });
Thomas Mewily's avatar
Thomas Mewily committed

        displayLocalHost(portNb, "profs");
        get("/profs", (req, res) -> {
Boris's avatar
Boris committed
            if (verificationSession(req))
            {
                return ProfGUI.getAllProfs();
            }
            else
            {
                res.redirect("/login");
                return null;
            }
            
Thomas Mewily's avatar
Thomas Mewily committed
        });
Boris's avatar
Boris committed
            if (verificationSession(req))
            {
                return ProfGUI.getWelcomePage(connected);
            }
            else
            {
                res.redirect("/login");
                return null;
            }
        });

Boris's avatar
Boris committed
        post("/profs/delete",(req,res) -> {
            Core.Prof.delete(Integer.parseInt(req.queryParams("id")));
            res.redirect("/profs");
            return null;

        displayLocalHost(portNb, "login");
        get("/login",(req,res)->{
            return LoginGUI.getConnectionPage();
        });

        post("/login",(req,res)->{
            String username = req.queryParams("userName");
            String password = req.queryParams("password");
Boris's avatar
Boris committed
            //List<ProfEntity> profs = Core.Prof.getAll();
            ProfEntity found = Core.Prof.getByLoginPair(username, password);
Boris's avatar
Boris committed
            
            if (found != null) {
                if (found.getPassword().compareTo(password) == 0) {
Boris's avatar
Boris committed
                    spark.Session s = req.session(true);
                    s.attribute("user",found.getUserName());
                    String id = s.id();
                    res.cookie("session-id",id);
Boris's avatar
Boris committed
                
            return "<!DOCTYPE html><html>Incorrect<a href=\'/login\'>Reessayer</a></html>";


        get("/eleves",(req,res)->{
Boris's avatar
Boris committed
            if (verificationSession(req)) {
                return EleveGUI.getAllEleves();
            }
            else {
                res.redirect("/login");
                return null;
            }
Thomas Mewily's avatar
Thomas Mewily committed
        });

Thomas Mewily's avatar
Thomas Mewily committed
        get("/eleves/:id",(req,res)->{
Thomas Mewily's avatar
Thomas Mewily committed

Thomas Mewily's avatar
Thomas Mewily committed
            String id = req.params("id");
Thomas Mewily's avatar
Thomas Mewily committed
            return EleveGommetteGUI.getEleveGommettes(Integer.parseInt(id));
        });

        post("/eleves/ajout", (req,res)->{
            String firstName = req.queryParams("firstName");
            String lastName = req.queryParams("lastName");
            String dateNaissance = req.queryParams("dateNaissance");
Boris's avatar
Boris committed



            DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            java.util.Date d = format.parse(dateNaissance);

            java.sql.Date date = new java.sql.Date(d.getTime());


            String nomClasse = req.queryParams("nomClasse");

Boris's avatar
Boris committed
            System.out.println(firstName + " " + lastName + " " + date.toString() + " " + nomClasse);
Boris's avatar
Boris committed
            Core.Eleve.create(firstName,lastName,date,nomClasse);

            res.redirect("/eleves");
            return null;
        });

Thomas Mewily's avatar
Thomas Mewily committed
        post("/eleves/gommette/delete", (req,res)->{
Thomas Mewily's avatar
Thomas Mewily committed
            System.out.println("deleted gommette");
Thomas Mewily's avatar
Thomas Mewily committed
            Core.GommetteAttrib.delete(Integer.parseInt(req.queryParams("id")));
Thomas Mewily's avatar
Thomas Mewily committed
            res.redirect("/eleves/"+req.queryParams("idEleve"));
Thomas Mewily's avatar
Thomas Mewily committed
            return null;
        });

Thomas Mewily's avatar
Thomas Mewily committed
        post("/eleves/gommette/ajout", (req,res)->{
Boris's avatar
Boris committed
            if (!verificationSession(req))
Thomas Mewily's avatar
Thomas Mewily committed
            {
                res.redirect("/login");
                return null;
            }
Thomas Mewily's avatar
Thomas Mewily committed

Thomas Mewily's avatar
Thomas Mewily committed
            String raison      = req.queryParams("raison");
            int idGommette     = Integer.parseInt(req.queryParams("idGommette"));
            int idEleve        = Integer.parseInt(req.queryParams("idEleve"));

Thomas Mewily's avatar
Thomas Mewily committed
            Core.GommetteAttrib.create(idEleve,connected.getId(),idGommette, new java.sql.Date(System.currentTimeMillis()), raison);
Thomas Mewily's avatar
Thomas Mewily committed
            res.redirect("/eleves/"+req.queryParams("idEleve"));
Thomas Mewily's avatar
Thomas Mewily committed
            return null;
        });

        post("/eleves/delete", (req,res) ->{
            Core.Eleve.delete(Integer.parseInt(req.queryParams("id")));
Thomas Mewily's avatar
Thomas Mewily committed

            res.redirect("/eleves");
            return null;
        });


        post("/eleves/update", (req,res) ->{

            String firstName = req.queryParams("firstName");
            String lastName = req.queryParams("lastName");
            String dateNaissance = req.queryParams("dateNaissance");
Boris's avatar
Boris committed

            String[] tokens = dateNaissance.split("-");

            DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            java.util.Date d = format.parse(dateNaissance);

            java.sql.Date date = new java.sql.Date(d.getTime());
            

            String nomClasse = req.queryParams("nomClasse");
            String id = req.queryParams("id_selection");

Boris's avatar
Boris committed
            Core.Eleve.update(Integer.parseInt(id),firstName,lastName,date,nomClasse);
            res.redirect("/eleves");
            return null;
        });
Boris's avatar
Boris committed

Boris's avatar
Boris committed

Boris's avatar
Boris committed
        get("/gommettes", (req,res) ->{
Boris's avatar
Boris committed
            if (verificationSession(req)) {
Boris's avatar
Boris committed
                return GommetteGUI.getAllGommettes();
            }
            else {
                res.redirect("/login");
                return null;
            }
        });

        post("/gommettes/ajout", (req,res) ->{
            String couleur = req.queryParams("couleur");

            if (couleur != null)
            {
                Couleur c = Couleur.retrieve(couleur);
                System.out.println(c);
                if (c != null)
                { 
                    String description = req.queryParams("description");
                    String nom = req.queryParams("nom");
                    Core.Gommette.create(nom,c, description);
                    
                }
            }
            res.redirect("/gommettes");
            return null;
        });
Boris's avatar
Boris committed

        post("/gommettes/update", (req,res)->{

            
Thomas Mewily's avatar
Thomas Mewily committed
            String  couleurStr = req.queryParams("couleur");
            Couleur couleur = Couleur.retrieve(couleurStr);
Boris's avatar
Boris committed
        
            String id = req.queryParams("id_selection");
Thomas Mewily's avatar
Thomas Mewily committed
            String nom = req.queryParams("nom");
            String description = req.queryParams("description");
Boris's avatar
Boris committed

Thomas Mewily's avatar
Thomas Mewily committed
            GommetteEntity gommette = Core.Gommette.getById(Integer.parseInt(id));
            
            gommette.setNom(nom.length() > 0 ? nom : gommette.getNom());
            gommette.setCouleur(couleurStr != null ? couleur : gommette.getCouleur());
            gommette.setDescription(description.length() > 0 ? description : gommette.getDescription());
            
            Core.Gommette.push(gommette);
Boris's avatar
Boris committed
            
            res.redirect("/gommettes");
            return null;
        });
thtamagnau's avatar
thtamagnau committed
    }
}