From 4d71f14b31d2f7a40fac43b3c553ab2eaf7d42a1 Mon Sep 17 00:00:00 2001
From: Paul Billaudaz
Date: Sat, 11 Oct 2025 10:23:52 +0200
Subject: [PATCH] Test for the CheckPoint
---
.idea/.gitignore | 8 +++
.idea/ExerciseCheckPointSpringJPA.iml | 9 ++++
.idea/copilot.data.migration.agent.xml | 6 +++
.idea/copilot.data.migration.ask.xml | 6 +++
.idea/copilot.data.migration.ask2agent.xml | 6 +++
.idea/copilot.data.migration.edit.xml | 6 +++
.idea/material_theme_project_new.xml | 12 +++++
.idea/misc.xml | 7 +++
.idea/modules.xml | 8 +++
.idea/vcs.xml | 6 +++
GroupOfHero/Controller/HeroController.java | 60 ++++++++++++++++++++++
GroupOfHero/Entity/Hero.java | 56 ++++++++++++++++++++
GroupOfHero/GroupOfHeroApplication.java | 13 +++++
GroupOfHero/Repository/HeroRepository.java | 21 ++++++++
GroupOfHero/Service/SelectHeroService.java | 50 ++++++++++++++++++
15 files changed, 274 insertions(+)
create mode 100644 .idea/.gitignore
create mode 100644 .idea/ExerciseCheckPointSpringJPA.iml
create mode 100644 .idea/copilot.data.migration.agent.xml
create mode 100644 .idea/copilot.data.migration.ask.xml
create mode 100644 .idea/copilot.data.migration.ask2agent.xml
create mode 100644 .idea/copilot.data.migration.edit.xml
create mode 100644 .idea/material_theme_project_new.xml
create mode 100644 .idea/misc.xml
create mode 100644 .idea/modules.xml
create mode 100644 .idea/vcs.xml
create mode 100644 GroupOfHero/Controller/HeroController.java
create mode 100644 GroupOfHero/Entity/Hero.java
create mode 100644 GroupOfHero/GroupOfHeroApplication.java
create mode 100644 GroupOfHero/Repository/HeroRepository.java
create mode 100644 GroupOfHero/Service/SelectHeroService.java
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/ExerciseCheckPointSpringJPA.iml b/.idea/ExerciseCheckPointSpringJPA.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/ExerciseCheckPointSpringJPA.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/copilot.data.migration.agent.xml b/.idea/copilot.data.migration.agent.xml
new file mode 100644
index 0000000..4ea72a9
--- /dev/null
+++ b/.idea/copilot.data.migration.agent.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/copilot.data.migration.ask.xml b/.idea/copilot.data.migration.ask.xml
new file mode 100644
index 0000000..7ef04e2
--- /dev/null
+++ b/.idea/copilot.data.migration.ask.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/copilot.data.migration.ask2agent.xml b/.idea/copilot.data.migration.ask2agent.xml
new file mode 100644
index 0000000..1f2ea11
--- /dev/null
+++ b/.idea/copilot.data.migration.ask2agent.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/copilot.data.migration.edit.xml b/.idea/copilot.data.migration.edit.xml
new file mode 100644
index 0000000..8648f94
--- /dev/null
+++ b/.idea/copilot.data.migration.edit.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml
new file mode 100644
index 0000000..f1d694b
--- /dev/null
+++ b/.idea/material_theme_project_new.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..0d28c9c
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..a824df2
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GroupOfHero/Controller/HeroController.java b/GroupOfHero/Controller/HeroController.java
new file mode 100644
index 0000000..4e22768
--- /dev/null
+++ b/GroupOfHero/Controller/HeroController.java
@@ -0,0 +1,60 @@
+package com.example.GroupOfHero.Controller;
+
+import com.example.GroupOfHero.Entity.Hero;
+import com.example.GroupOfHero.Service.SelectHeroService;
+import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
+@RestController
+@RequestMapping("/heroes")
+public class HeroController {
+
+ private final SelectHeroService selectHeroService;
+
+ public HeroController(SelectHeroService selectHeroService) {
+ this.selectHeroService = selectHeroService;
+ }
+
+ @GetMapping("/name/{name}")
+ public List getHeroesByName(@PathVariable String name) {
+ return selectHeroService.findByName(name);
+ }
+
+ @GetMapping("/classtype/{classtype}")
+ public List getHeroesByClasstype(@PathVariable String classtype) {
+ return selectHeroService.findByClasstype(classtype);
+ }
+ @GetMapping("/level/greater/{level}")
+ public List getHeroesByLevelGreaterThan(@PathVariable int level) {
+ return selectHeroService.findByLevelGreaterThan(level);
+ }
+ @GetMapping("/level/less/{level}")
+ public List getHeroesByLevelLessThan(@PathVariable int level) {
+ return selectHeroService.findByLevelLessThan(level);
+ }
+ @GetMapping("/weapon/{weapon}")
+ public List getHeroesByWeapon(@PathVariable String weapon) {
+ return selectHeroService.findByWeapon(weapon);
+ }
+ @PostMapping("/ids")
+ public List getHeroesByIds(@RequestBody List ids) {
+ return selectHeroService.findByIdIn(ids);
+ }
+ @GetMapping("/alias/{alias}")
+ public Hero getHeroByAlias(@PathVariable String alias) {
+ return selectHeroService.findByAlias(alias);
+ }
+ @GetMapping("/all")
+ public List findAll() {
+ return selectHeroService.findAll();
+ }
+ @PostMapping("/add")
+ public List addHero(@RequestBody Hero hero) {
+ return selectHeroService.addHero(hero);
+ }
+ @DeleteMapping("/delete/{id}")
+ public List deleteHero(@PathVariable Long id) {
+ return selectHeroService.deleteHero(id);
+ }
+}
+
diff --git a/GroupOfHero/Entity/Hero.java b/GroupOfHero/Entity/Hero.java
new file mode 100644
index 0000000..4cbb858
--- /dev/null
+++ b/GroupOfHero/Entity/Hero.java
@@ -0,0 +1,56 @@
+package com.example.GroupOfHero.Entity;
+
+import jakarta.persistence.Entity;
+import jakarta.persistence.Id;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+
+@Entity
+public class Hero {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+ private String name;
+ private String alias;
+ private String classtype;
+ private String weapon;
+ private int level;
+
+ public Long getId() {
+ return id;
+ }
+ public void setId(Long id) {
+ this.id = id;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getAlias() {
+ return alias;
+ }
+ public void setAlias(String alias) {
+ this.alias = alias;
+ }
+ public String getClassType() {
+ return classtype;
+ }
+ public void setClassType(String classType) {
+ this.classtype = classType;
+ }
+ public String getWeapon() {
+ return weapon;
+ }
+ public void setWeapon(String weapon) {
+ this.weapon = weapon;
+ }
+ public int getLevel() {
+ return level;
+
+ }
+ public void setLevel(int level) {
+ this.level = level;
+ }
+}
diff --git a/GroupOfHero/GroupOfHeroApplication.java b/GroupOfHero/GroupOfHeroApplication.java
new file mode 100644
index 0000000..5e091e8
--- /dev/null
+++ b/GroupOfHero/GroupOfHeroApplication.java
@@ -0,0 +1,13 @@
+package com.example.GroupOfHero;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class GroupOfHeroApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(GroupOfHeroApplication.class, args);
+ }
+
+}
diff --git a/GroupOfHero/Repository/HeroRepository.java b/GroupOfHero/Repository/HeroRepository.java
new file mode 100644
index 0000000..81153d0
--- /dev/null
+++ b/GroupOfHero/Repository/HeroRepository.java
@@ -0,0 +1,21 @@
+package com.example.GroupOfHero.Repository;
+
+import com.example.GroupOfHero.Entity.Hero;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+
+@Repository
+public interface HeroRepository extends JpaRepository {
+ List findByName(String name);
+ List findByClasstype(String classtype);
+ List findByLevelGreaterThan(int level);
+ List findByLevelLessThan(int level);
+ List findByWeapon(String weapon);
+ List findByIdIn(List ids);
+ Hero findByAlias(String alias);
+
+
+}
diff --git a/GroupOfHero/Service/SelectHeroService.java b/GroupOfHero/Service/SelectHeroService.java
new file mode 100644
index 0000000..f70a215
--- /dev/null
+++ b/GroupOfHero/Service/SelectHeroService.java
@@ -0,0 +1,50 @@
+package com.example.GroupOfHero.Service;
+
+import com.example.GroupOfHero.Entity.Hero;
+import com.example.GroupOfHero.Repository.HeroRepository;
+import org.springframework.stereotype.Service;
+import java.util.List;
+
+@Service
+public class SelectHeroService {
+
+ private final HeroRepository heroRepository;
+
+ public SelectHeroService(HeroRepository heroRepository) {
+ this.heroRepository = heroRepository;
+ }
+
+ public List findByName(String name) {
+ return heroRepository.findByName(name); }
+
+ public List findByClasstype(String classtype) {
+ return heroRepository.findByClasstype(classtype); }
+
+ public List findByLevelGreaterThan(int level) {
+ return heroRepository.findByLevelGreaterThan(level); }
+
+ public List findByLevelLessThan(int level) {
+ return heroRepository.findByLevelLessThan(level); }
+
+ public List findByWeapon(String weapon) {
+ return heroRepository.findByWeapon(weapon); }
+
+ public List findByIdIn(List ids) {
+ return heroRepository.findByIdIn(ids); }
+
+ public Hero findByAlias(String alias) {
+ return heroRepository.findByAlias(alias);
+ }
+ public List findAll() {
+ return heroRepository.findAll();
+ }
+ public List addHero(Hero hero) {
+ heroRepository.save(hero);
+ return heroRepository.findAll();
+ }
+ public List deleteHero(Long id) {
+ heroRepository.deleteById(id);
+ return heroRepository.findAll();
+ }
+
+}