package com.uca; import com.uca.dao._Initializer; import com.uca.gui.*; import com.uca.core.*; import com.uca.entity.*; import java.sql.Date; import java.util.*; import static spark.Spark.*; import java.text.*; import java.io.IOException; import java.nio.file.Path; import java.nio.file.Paths; public class StartServer { //.\gradlew run public static ProfEntity connected = null; public static void displayLocalHost(int portNb, String suffix) { System.out.println("http://localhost:"+portNb+"/"+suffix); } public static boolean verificationSession(spark.Request req) { String c = req.cookie("session-id"); if (c == null) return false; else{ return true; } } public static void main(String[] args) { int portNb = 8081; //Configure Spark staticFiles.location("/static/"); port(portNb); _Initializer.Init(); // Debug: connected = _Initializer.DEBUG_BORIS_ADMIN; //Defining our routes displayLocalHost(portNb, "users"); get("/users", (req, res) -> { return UserGUI.getAllUsers(); }); displayLocalHost(portNb, "profs"); get("/profs", (req, res) -> { if (verificationSession(req)) { return ProfGUI.getAllProfs(); } else { res.redirect("/login"); return null; } }); get("/welcome",(req,res) -> { if (verificationSession(req)) { return ProfGUI.getWelcomePage(connected); } else { res.redirect("/login"); return null; } }); 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"); //List<ProfEntity> profs = Core.Prof.getAll(); ProfEntity found = Core.Prof.getLoginPair(username, password); if (found != null) { if (found.getPassword().compareTo(password) == 0) { connected = found; spark.Session s = req.session(true); s.attribute("user",found.getUserName()); String id = s.id(); res.cookie("session-id",id); res.redirect("/welcome"); return null; } } return "<!DOCTYPE html><html>Incorrect<a href=\'/login\'>Reessayer</a></html>"; }); get("/eleves",(req,res)->{ if (verificationSession(req)) { return EleveGUI.getAllEleves(); } else { res.redirect("/login"); return null; } }); get("/eleves/gommettes",(req,res)->{ String id = req.queryParams("id"); 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"); 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"); System.out.println(firstName + " " + lastName + " " + date.toString() + " " + nomClasse); Core.Eleve.create(firstName,lastName,date,nomClasse); res.redirect("/eleves"); return null; }); post("/eleves/gommette/delete", (req,res)->{ System.out.println("deleted gommette"); Core.GommetteAttrib.delete(Integer.parseInt(req.queryParams("id"))); res.redirect("/eleves"); return null; }); post("/eleves/gommette/ajout", (req,res)->{ if (! verificationSession(req)) { res.redirect("/login"); return null; } String raison = req.queryParams("raison"); int idGommette = Integer.parseInt(req.queryParams("idGommette")); int idEleve = Integer.parseInt(req.queryParams("idEleve")); String url = req.url(); url = url.substring(0, url.lastIndexOf('/')); url = url+"s?id="+idEleve+"&id="; Core.GommetteAttrib.create(idEleve,connected.getId(),idGommette, new java.sql.Date(System.currentTimeMillis()), raison); System.out.println("url: "+url); res.redirect(url); return null; }); post("/eleves/delete", (req,res) ->{ Core.Eleve.delete(Integer.parseInt(req.queryParams("id"))); 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"); 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"); Core.Eleve.update(Integer.parseInt(id),firstName,lastName,date,nomClasse); res.redirect("/eleves"); return null; }); get("/gommettes", (req,res) ->{ if (verificationSession(req)) { 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; }); post("/gommettes/update", (req,res)->{ String couleur = req.queryParams("couleur"); Couleur c = Couleur.retrieve(couleur); String description = req.queryParams("description"); String nom = req.queryParams("nom"); String id = req.queryParams("id_selection"); Core.Gommette.update(Integer.parseInt(id),nom,c, description); res.redirect("/gommettes"); return null; }); } }