diff --git a/build.gradle b/build.gradle index 607d65f..a804775 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,23 @@ plugins { id 'java' + id 'application' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' } group = 'fr.eni' -version = '0.0.1-SNAPSHOT' +version = '1.0.0' java { sourceCompatibility = '17' } +jar { + manifest { + attributes 'Main-Class': 'fr.eni.enchere.EnchereApplication' + } +} + repositories { mavenCentral() } diff --git a/src/main/java/fr/eni/enchere/bll/CategorieService.java b/src/main/java/fr/eni/enchere/bll/CategorieService.java index 1ef5171..bcd4dba 100644 --- a/src/main/java/fr/eni/enchere/bll/CategorieService.java +++ b/src/main/java/fr/eni/enchere/bll/CategorieService.java @@ -9,5 +9,7 @@ import java.util.List; public interface CategorieService { List findAllCategories(); Categorie findCategorieById(int id); - + void saveCategorie(Categorie categorie); + void updateCategorie(Categorie categorie); + void deleteCategorie(int id); } diff --git a/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java b/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java index e2f128d..2039e8a 100644 --- a/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java +++ b/src/main/java/fr/eni/enchere/bll/CategorieServiceImpl.java @@ -28,5 +28,20 @@ public class CategorieServiceImpl implements CategorieService { return categorieRepository.findCategorieById(id); } + @Override + public void saveCategorie(Categorie categorie) { + categorieRepository.saveCategorie(categorie); + } + + @Override + public void updateCategorie(Categorie categorie) { + + } + + @Override + public void deleteCategorie(int id) { + categorieRepository.deleteCategorie(id); + } + } diff --git a/src/main/java/fr/eni/enchere/controllers/AdminController.java b/src/main/java/fr/eni/enchere/controllers/AdminController.java index dd84ee1..3f93934 100644 --- a/src/main/java/fr/eni/enchere/controllers/AdminController.java +++ b/src/main/java/fr/eni/enchere/controllers/AdminController.java @@ -2,11 +2,19 @@ package fr.eni.enchere.controllers; import fr.eni.enchere.bll.CategorieService; import fr.eni.enchere.bll.UserService; +import fr.eni.enchere.bo.Article; +import fr.eni.enchere.bo.Categorie; +import fr.eni.enchere.bo.Retrait; +import fr.eni.enchere.bo.UserProfil; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.*; @Controller +@RequestMapping("/admin") public class AdminController { private UserService userService; @@ -17,10 +25,27 @@ public class AdminController { this.categorieService = categorieService; } - @GetMapping( "/admin") + @GetMapping public String viewAdminPanel(Model model) { model.addAttribute("categories", categorieService.findAllCategories()); - //model.addAttribute("userProfil", userService.f); + model.addAttribute("userProfil", userService.listeUtilisateurs()); + model.addAttribute("categorie", new Categorie()); return "admin"; } + + @PostMapping("/new") + public String ajouterCategorie(@ModelAttribute("categorie") Categorie categorie) { + categorieService.saveCategorie(categorie); + return "redirect:/admin"; + } + + @PostMapping("/update") + public String updateCategorie(@RequestParam("newCategorie") String libelle, @RequestParam("IdCategorie") int idCategorie) { + Categorie categorie = new Categorie(); + categorie.setLibelle(libelle); + categorie.setId(idCategorie); + + return "redirect:/admin"; + } + } diff --git a/src/main/java/fr/eni/enchere/dal/CategorieRepository.java b/src/main/java/fr/eni/enchere/dal/CategorieRepository.java index aa54ee9..c458a39 100644 --- a/src/main/java/fr/eni/enchere/dal/CategorieRepository.java +++ b/src/main/java/fr/eni/enchere/dal/CategorieRepository.java @@ -7,4 +7,7 @@ import java.util.List; public interface CategorieRepository { List findAllCategories(); Categorie findCategorieById(int id); + void saveCategorie(Categorie categorie); + void updateCategorie(Categorie categorie); + void deleteCategorie(int id); } diff --git a/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java index 478e802..f515228 100644 --- a/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/CategorieRepositoryImpl.java @@ -5,6 +5,8 @@ import fr.eni.enchere.bo.Categorie; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; +import org.springframework.jdbc.support.GeneratedKeyHolder; +import org.springframework.jdbc.support.KeyHolder; import org.springframework.stereotype.Repository; import java.sql.ResultSet; @@ -16,7 +18,6 @@ public class CategorieRepositoryImpl implements CategorieRepository { private JdbcTemplate jdbcTemplate; private NamedParameterJdbcTemplate namedJdbcTemplate; - private class CategorieRowMapper implements RowMapper { @Override @@ -35,15 +36,31 @@ public class CategorieRepositoryImpl implements CategorieRepository { @Override public List findAllCategories() { - String sql = "SELECT * FROM CATEGORIES"; + String sql = "SELECT * FROM CATEGORIES WHERE isDelete = 0"; List categories = jdbcTemplate.query(sql, new CategorieRowMapper()); return categories; } @Override public Categorie findCategorieById(int id) { - String sql = "SELECT * FROM CATEGORIES WHERE no_categorie = ?"; + String sql = "SELECT * FROM CATEGORIES WHERE no_categorie = ? AND isDelete = 0"; Categorie categorie = jdbcTemplate.queryForObject(sql, new CategorieRowMapper(), id); return categorie; } + + @Override + public void saveCategorie(Categorie categorie) { + String sql = "INSERT INTO CATEGORIES (\t=libelle) VALUES (?)"; + jdbcTemplate.update(sql, categorie.getLibelle()); + } + + @Override + public void updateCategorie(Categorie categorie) { + + } + + @Override + public void deleteCategorie(int id) { + + } } diff --git a/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java b/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java index b230052..d96c466 100644 --- a/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java +++ b/src/main/java/fr/eni/enchere/dal/UserRepositoryImpl.java @@ -75,7 +75,9 @@ public class UserRepositoryImpl implements UserRepository { @Override public List findAll() { - return List.of(); + String sql = "SELECT * FROM UTILISATEURS WHERE isDelete = 0"; + List users = jdbcTemplate.query(sql, new UserRowMapper()); + return users; } @Override diff --git a/src/main/java/fr/eni/enchere/security/WebSecurityConfig.java b/src/main/java/fr/eni/enchere/security/WebSecurityConfig.java index 4ba9131..e48eccb 100644 --- a/src/main/java/fr/eni/enchere/security/WebSecurityConfig.java +++ b/src/main/java/fr/eni/enchere/security/WebSecurityConfig.java @@ -9,6 +9,8 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import static javax.management.Query.and; + @Configuration @EnableWebSecurity public class WebSecurityConfig{ diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 4fcf5b8..219e581 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,4 +2,5 @@ spring.datasource.url=jdbc:mariadb://91.121.54.36:3306/eni_enchere spring.datasource.username=eni spring.datasource.password=Pa$$w0rd spring.datasource.driver-class-name=org.mariadb.jdbc.Driver -spring.messages.encoding=UTF-8 \ No newline at end of file +spring.messages.encoding=UTF-8 +server.port=8800 \ No newline at end of file diff --git a/src/main/resources/templates/admin.html b/src/main/resources/templates/admin.html index be851f1..37b1256 100644 --- a/src/main/resources/templates/admin.html +++ b/src/main/resources/templates/admin.html @@ -2,9 +2,72 @@ +
+

Liste des catégories modifiées

+ + + + + + + + + + + + + +
NomAction
+
+ + + +
+
+
+ + +
+
+
+ + +
+

Liste des utilisateurs

+ + + + + + + + + + + + + + + + + + + + + +
IDPseudoNomPrénomEmailAction
+
+ + +
+
+ + +
+