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(); + } + +}