Modification
This commit is contained in:
parent
057b275f2f
commit
9fe8cf4981
19 changed files with 460 additions and 31 deletions
|
|
@ -1,13 +1,22 @@
|
||||||
package fr.clelia.avis;
|
package fr.clelia.avis;
|
||||||
|
|
||||||
|
import fr.clelia.avis.business.Joueur;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
public class AvisApplication {
|
public class AvisApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
SpringApplication.run(AvisApplication.class, args);
|
SpringApplication.run(AvisApplication.class, args);
|
||||||
|
Joueur joueur = Joueur.builder()
|
||||||
|
.pseudo("Joueur")
|
||||||
|
.email("amaury.maizy@soprasteria.com")
|
||||||
|
.dateDeNaissance(LocalDate.of(2000, 1, 1))
|
||||||
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,4 @@ public class Avatar {
|
||||||
|
|
||||||
@OneToOne(mappedBy="avatar")
|
@OneToOne(mappedBy="avatar")
|
||||||
private Utilisateur utilisateur;
|
private Utilisateur utilisateur;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
package fr.clelia.avis.business;
|
package fr.clelia.avis.business;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import org.hibernate.annotations.DynamicInsert;
|
import org.hibernate.annotations.DynamicInsert;
|
||||||
import org.hibernate.annotations.DynamicUpdate;
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -19,6 +21,7 @@ public class Editeur {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
|
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
@Column(length = 100, unique = true)
|
@Column(length = 100, unique = true)
|
||||||
|
|
@ -27,8 +30,12 @@ public class Editeur {
|
||||||
|
|
||||||
private String logo;
|
private String logo;
|
||||||
|
|
||||||
|
@JsonManagedReference
|
||||||
|
@OneToMany(mappedBy = "editeur", cascade = CascadeType.REMOVE) // OneEditeurToManyJeux
|
||||||
|
private List<Jeu> jeux;
|
||||||
|
|
||||||
public Editeur(String nom, String logo) {
|
public Editeur(String nom, String logo) {
|
||||||
this.nom = nom;
|
this.nom = nom;
|
||||||
this.logo = logo;
|
this.logo = logo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,177 @@
|
||||||
package fr.clelia.avis.business;
|
package fr.clelia.avis.business;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.*;
|
import lombok.Data;
|
||||||
import java.util.List;
|
import lombok.NonNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Data
|
@Data
|
||||||
public class Jeu {
|
public class Jeu {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private String nom;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "editeur_id")
|
@NonNull
|
||||||
|
@JsonBackReference
|
||||||
private Editeur editeur;
|
private Editeur editeur;
|
||||||
|
|
||||||
@ManyToMany
|
@ManyToMany
|
||||||
private List<Plateforme> plateformes = new ArrayList<>();
|
@NonNull
|
||||||
|
@JsonManagedReference // On souhaite voir en Json les plateformes du jeu
|
||||||
|
private List<Plateforme> plateformes;
|
||||||
|
|
||||||
}
|
private LocalDate dateDeSortie;
|
||||||
|
|
||||||
|
private boolean possedeImage;
|
||||||
|
|
||||||
|
public Jeu(@NonNull String nom, @NonNull Editeur editeur, @NonNull List<Plateforme> plateformes) {
|
||||||
|
this.nom = nom;
|
||||||
|
this.editeur = editeur;
|
||||||
|
this.plateformes = plateformes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Jeu(Long id, @NonNull String nom, @NonNull Editeur editeur, @NonNull List<Plateforme> plateformes) {
|
||||||
|
this.id = id;
|
||||||
|
this.nom = nom;
|
||||||
|
this.editeur = editeur;
|
||||||
|
this.plateformes = plateformes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Jeu() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static JeuBuilder builder() {
|
||||||
|
return new JeuBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return this.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public @NonNull String getNom() {
|
||||||
|
return this.nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public @NonNull Editeur getEditeur() {
|
||||||
|
return this.editeur;
|
||||||
|
}
|
||||||
|
|
||||||
|
public @NonNull List<Plateforme> getPlateformes() {
|
||||||
|
return this.plateformes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNom(@NonNull String nom) {
|
||||||
|
this.nom = nom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEditeur(@NonNull Editeur editeur) {
|
||||||
|
this.editeur = editeur;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlateformes(@NonNull List<Plateforme> plateformes) {
|
||||||
|
this.plateformes = plateformes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals(final Object o) {
|
||||||
|
if (o == this) return true;
|
||||||
|
if (!(o instanceof Jeu)) return false;
|
||||||
|
final Jeu other = (Jeu) o;
|
||||||
|
if (!other.canEqual((Object) this)) return false;
|
||||||
|
final Object this$id = this.getId();
|
||||||
|
final Object other$id = other.getId();
|
||||||
|
if (this$id == null ? other$id != null : !this$id.equals(other$id)) return false;
|
||||||
|
final Object this$nom = this.getNom();
|
||||||
|
final Object other$nom = other.getNom();
|
||||||
|
if (this$nom == null ? other$nom != null : !this$nom.equals(other$nom)) return false;
|
||||||
|
final Object this$editeur = this.getEditeur();
|
||||||
|
final Object other$editeur = other.getEditeur();
|
||||||
|
if (this$editeur == null ? other$editeur != null : !this$editeur.equals(other$editeur)) return false;
|
||||||
|
final Object this$plateformes = this.getPlateformes();
|
||||||
|
final Object other$plateformes = other.getPlateformes();
|
||||||
|
if (this$plateformes == null ? other$plateformes != null : !this$plateformes.equals(other$plateformes))
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean canEqual(final Object other) {
|
||||||
|
return other instanceof Jeu;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int hashCode() {
|
||||||
|
final int PRIME = 59;
|
||||||
|
int result = 1;
|
||||||
|
final Object $id = this.getId();
|
||||||
|
result = result * PRIME + ($id == null ? 43 : $id.hashCode());
|
||||||
|
final Object $nom = this.getNom();
|
||||||
|
result = result * PRIME + ($nom == null ? 43 : $nom.hashCode());
|
||||||
|
final Object $editeur = this.getEditeur();
|
||||||
|
result = result * PRIME + ($editeur == null ? 43 : $editeur.hashCode());
|
||||||
|
final Object $plateformes = this.getPlateformes();
|
||||||
|
result = result * PRIME + ($plateformes == null ? 43 : $plateformes.hashCode());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
return "Jeu(id=" + this.getId() + ", nom=" + this.getNom() + ", editeur=" + this.getEditeur() + ", plateformes=" + this.getPlateformes() + ")";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class JeuBuilder {
|
||||||
|
private Long id;
|
||||||
|
private @NonNull String nom;
|
||||||
|
private @NonNull Editeur editeur;
|
||||||
|
private @NonNull List<Plateforme> plateformes;
|
||||||
|
|
||||||
|
JeuBuilder() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public JeuBuilder id(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JeuBuilder nom(@NonNull String nom) {
|
||||||
|
this.nom = nom;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JeuBuilder editeur(@NonNull Editeur editeur) {
|
||||||
|
this.editeur = editeur;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JeuBuilder plateformes(@NonNull List<Plateforme> plateformes) {
|
||||||
|
this.plateformes = plateformes;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Jeu build() {
|
||||||
|
return new Jeu(this.id, this.nom, this.editeur, this.plateformes);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString() {
|
||||||
|
return "Jeu.JeuBuilder(id=" + this.id + ", nom=" + this.nom + ", editeur=" + this.editeur + ", plateformes=" + this.plateformes + ")";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
public Jeu(String nom, Editeur editeur, List<Plateforme> plateformes) {
|
||||||
|
this.nom = nom;
|
||||||
|
this.editeur = editeur;
|
||||||
|
this.plateformes = plateformes;
|
||||||
|
}
|
||||||
|
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,4 @@ import java.time.LocalDate;
|
||||||
public class Joueur extends Utilisateur {
|
public class Joueur extends Utilisateur {
|
||||||
|
|
||||||
private LocalDate dateDeNaissance;
|
private LocalDate dateDeNaissance;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,4 +13,4 @@ import org.springframework.boot.convert.DataSizeUnit;
|
||||||
public class Moderateur extends Utilisateur {
|
public class Moderateur extends Utilisateur {
|
||||||
|
|
||||||
private String numeroDeTelephone;
|
private String numeroDeTelephone;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,31 @@
|
||||||
package fr.clelia.avis.business;
|
package fr.clelia.avis.business;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.GeneratedValue;
|
||||||
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.ManyToMany;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
import org.hibernate.annotations.DynamicInsert;
|
|
||||||
import org.hibernate.annotations.DynamicUpdate;
|
|
||||||
|
|
||||||
@Data
|
import java.util.List;
|
||||||
@DynamicInsert
|
|
||||||
@DynamicUpdate
|
|
||||||
@Entity
|
@Entity
|
||||||
|
@NoArgsConstructor
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
public class Plateforme {
|
public class Plateforme {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue
|
@GeneratedValue
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@NonNull
|
||||||
private String nom;
|
private String nom;
|
||||||
|
|
||||||
|
@ManyToMany(mappedBy="plateformes")
|
||||||
|
@JsonIgnore
|
||||||
|
private List<Jeu> jeux;
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
package fr.clelia.avis.controller;
|
||||||
|
|
||||||
|
import fr.clelia.avis.service.EditeurService;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
public class EditeurController {
|
||||||
|
|
||||||
|
// Dépendance
|
||||||
|
private final EditeurService editeurService;
|
||||||
|
|
||||||
|
public EditeurController(EditeurService editeurService) {
|
||||||
|
this.editeurService = editeurService;
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("editeurs")
|
||||||
|
public ModelAndView getEditeurs() {
|
||||||
|
ModelAndView mav = new ModelAndView("editeurs");
|
||||||
|
mav.addObject("editeurs", editeurService.recupererEditeurs());
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("editeurs")
|
||||||
|
public ModelAndView postEditeurs(@RequestParam("NOM") String nomRecherche) {
|
||||||
|
ModelAndView modelAndView = new ModelAndView("editeurs");
|
||||||
|
modelAndView.addObject("editeurs", editeurService.recupererEditeursAyantUnNomContenant(nomRecherche));
|
||||||
|
modelAndView.addObject("nom", nomRecherche);
|
||||||
|
return modelAndView;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,22 +1,110 @@
|
||||||
package fr.clelia.avis.initialisation;
|
package fr.clelia.avis.initialisation;
|
||||||
|
|
||||||
import fr.clelia.avis.business.Editeur;
|
import fr.clelia.avis.business.Editeur;
|
||||||
|
import fr.clelia.avis.business.Plateforme;
|
||||||
import fr.clelia.avis.repository.EditeurRepository;
|
import fr.clelia.avis.repository.EditeurRepository;
|
||||||
|
import fr.clelia.avis.repository.PlateformeRepository;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component // Spring va instancier cette classe
|
@Component // Spring va instancier cette classe
|
||||||
// et placer cette instance dans son conteneur IoC
|
// et placer cette instance dans son conteneur IoC
|
||||||
@AllArgsConstructor
|
//@AllArgsConstructor
|
||||||
public class AjoutDonneesInitiales {
|
public class AjoutDonneesInitiales {
|
||||||
|
|
||||||
// Dépendances
|
// Dépendances
|
||||||
|
@Autowired
|
||||||
private EditeurRepository editeurRepository;
|
private EditeurRepository editeurRepository;
|
||||||
|
@Autowired
|
||||||
|
private PlateformeRepository plateformeRepository;
|
||||||
|
|
||||||
@EventListener(ApplicationReadyEvent.class)
|
@EventListener(ApplicationReadyEvent.class)
|
||||||
public void init() {
|
public void init() {
|
||||||
System.out.println("Ajout des données initiales");
|
System.out.println("Ajout des données initiales");
|
||||||
|
ajouterEditeurs();
|
||||||
|
ajouterPlateformes();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
private void ajouterEditeurs() {
|
||||||
|
if (editeurRepository.count() == 0) {
|
||||||
|
editeurRepository.save(new Editeur("Mobius Digital", "mobiusdigitalgames.com"));
|
||||||
|
editeurRepository.save(new Editeur("Activision", "activision.com"));
|
||||||
|
editeurRepository.save(new Editeur("Amazon Games","amazongames.com"));
|
||||||
|
editeurRepository.save(new Editeur("Ankama", "ankama.com"));
|
||||||
|
editeurRepository.save(new Editeur("Psyonix", "psyonix.com"));
|
||||||
|
editeurRepository.save(new Editeur("Bandai Namco", "bandai.co.jp"));
|
||||||
|
editeurRepository.save(new Editeur("Bethesda", "bethesda.net"));
|
||||||
|
editeurRepository.save(new Editeur("BioWare", "bioware.com"));
|
||||||
|
editeurRepository.save(new Editeur("Blizzard", "blizzard.com"));
|
||||||
|
editeurRepository.save(new Editeur("Capcom", "capcom.com"));
|
||||||
|
editeurRepository.save(new Editeur("CCP", "ccpgames.com"));
|
||||||
|
editeurRepository.save(new Editeur("CD Projekt Red", "cdprojekt.com"));
|
||||||
|
editeurRepository.save(new Editeur("Davilex", "davilex.nl"));
|
||||||
|
editeurRepository.save(new Editeur("Digital Extreme", "digitalextremes.com"));
|
||||||
|
editeurRepository.save(new Editeur("Electronic Arts", "ea.com"));
|
||||||
|
editeurRepository.save(new Editeur("Epic Games", "epicgames.com"));
|
||||||
|
editeurRepository.save(new Editeur("FromSoftware", "fromsoftware.jp"));
|
||||||
|
editeurRepository.save(new Editeur("Hazelight Studios", "hazelight.se"));
|
||||||
|
editeurRepository.save(new Editeur("idSoftware", "idsoftware.com"));
|
||||||
|
editeurRepository.save(new Editeur("Microsoft", "microsoft.com"));
|
||||||
|
editeurRepository.save(new Editeur("MonolithSoftware", "monolithsoft.co.jp"));
|
||||||
|
editeurRepository.save(new Editeur("Naughty Dog", "naughtydog.com"));
|
||||||
|
editeurRepository.save(new Editeur("Nintendo", "nintendo.com"));
|
||||||
|
editeurRepository.save(new Editeur("Riot Games", "riotgames.com"));
|
||||||
|
editeurRepository.save(new Editeur("Rockstar", "rockstar.com"));
|
||||||
|
editeurRepository.save(new Editeur("Sega", "sega.com"));
|
||||||
|
editeurRepository.save(new Editeur("Square Enix", "squareenix.com"));
|
||||||
|
editeurRepository.save(new Editeur("Tencent", "tencentgames.com"));
|
||||||
|
editeurRepository.save(new Editeur("Ubisoft", "ubisoft.com"));
|
||||||
|
editeurRepository.save(new Editeur("Ultra Software", null));
|
||||||
|
editeurRepository.save(new Editeur("Valve", "valvesoftware.com"));
|
||||||
|
editeurRepository.save(new Editeur("Wildcard", "wildcardmobile.com"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ajouterPlateformes() {
|
||||||
|
if (plateformeRepository.count() == 0) {
|
||||||
|
plateformeRepository.save(new Plateforme("Amstrad CPC"));
|
||||||
|
plateformeRepository.save(new Plateforme("Nintendo Wii"));
|
||||||
|
plateformeRepository.save(new Plateforme("Nintendo Wii U"));
|
||||||
|
plateformeRepository.save(new Plateforme("Nintendo Switch"));
|
||||||
|
plateformeRepository.save(new Plateforme("Windows"));
|
||||||
|
plateformeRepository.save(new Plateforme("MacOS"));
|
||||||
|
plateformeRepository.save(new Plateforme("Steam"));
|
||||||
|
plateformeRepository.save(new Plateforme("Neo-Geo"));
|
||||||
|
plateformeRepository.save(new Plateforme("PlayStation 1"));
|
||||||
|
plateformeRepository.save(new Plateforme("PlayStation 2"));
|
||||||
|
plateformeRepository.save(new Plateforme("PlayStation 3"));
|
||||||
|
plateformeRepository.save(new Plateforme("PlayStation 4"));
|
||||||
|
plateformeRepository.save(new Plateforme("PlayStation 5"));
|
||||||
|
plateformeRepository.save(new Plateforme("PlayStation Vita"));
|
||||||
|
plateformeRepository.save(new Plateforme("PSP"));
|
||||||
|
plateformeRepository.save(new Plateforme("Sega Dreamcast"));
|
||||||
|
plateformeRepository.save(new Plateforme("Sega Mastersystem"));
|
||||||
|
plateformeRepository.save(new Plateforme("Sega Saturn"));
|
||||||
|
plateformeRepository.save(new Plateforme("Xbox One"));
|
||||||
|
plateformeRepository.save(new Plateforme("Xbox One Series"));
|
||||||
|
plateformeRepository.save(new Plateforme("Xbox 360"));
|
||||||
|
plateformeRepository.save(new Plateforme("Amiga"));
|
||||||
|
plateformeRepository.save(new Plateforme("Android"));
|
||||||
|
plateformeRepository.save(new Plateforme("Atari 8-bit"));
|
||||||
|
plateformeRepository.save(new Plateforme("Atari Jaguar"));
|
||||||
|
plateformeRepository.save(new Plateforme("Commodore 64"));
|
||||||
|
plateformeRepository.save(new Plateforme("Game Boy"));
|
||||||
|
plateformeRepository.save(new Plateforme("Game Boy Color"));
|
||||||
|
plateformeRepository.save(new Plateforme("Game Boy Advance"));
|
||||||
|
plateformeRepository.save(new Plateforme("Game Boy Advance SP"));
|
||||||
|
plateformeRepository.save(new Plateforme("NES"));
|
||||||
|
plateformeRepository.save(new Plateforme("PC-Engine"));
|
||||||
|
plateformeRepository.save(new Plateforme("SNES"));
|
||||||
|
plateformeRepository.save(new Plateforme("Nintendo 3DS"));
|
||||||
|
plateformeRepository.save(new Plateforme("Nintendo 64"));
|
||||||
|
plateformeRepository.save(new Plateforme("Nintendo DS"));
|
||||||
|
plateformeRepository.save(new Plateforme("Nintendo Gamecube"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
package fr.clelia.avis.repository;
|
package fr.clelia.avis.repository;
|
||||||
|
|
||||||
public interface AvatarRepository {
|
import fr.clelia.avis.business.Avatar;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface AvatarRepository extends JpaRepository<Avatar, Long> {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
package fr.clelia.avis.repository;
|
package fr.clelia.avis.repository;
|
||||||
|
|
||||||
public interface JeuRepository {
|
import fr.clelia.avis.business.Jeu;
|
||||||
}
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
public interface JeuRepository extends JpaRepository<Jeu, Long> {
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
package fr.clelia.avis.repository;
|
package fr.clelia.avis.repository;
|
||||||
|
|
||||||
public interface JoueurRepository {
|
import fr.clelia.avis.business.Joueur;
|
||||||
}
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface JoueurRepository extends JpaRepository<Joueur, Long> {
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
package fr.clelia.avis.repository;
|
package fr.clelia.avis.repository;
|
||||||
|
|
||||||
public interface ModerateurRepository {
|
import fr.clelia.avis.business.Moderateur;
|
||||||
}
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface ModerateurRepository extends JpaRepository<Moderateur, Long> {
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
package fr.clelia.avis.repository;
|
package fr.clelia.avis.repository;
|
||||||
|
|
||||||
public interface PlateformeRepository {
|
import fr.clelia.avis.business.Plateforme;
|
||||||
}
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface PlateformeRepository extends JpaRepository<Plateforme, Long> {
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
package fr.clelia.avis.repository;
|
package fr.clelia.avis.repository;
|
||||||
|
|
||||||
public interface UtilisateurRepository {
|
import fr.clelia.avis.business.Utilisateur;
|
||||||
}
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
public interface UtilisateurRepository extends JpaRepository<Utilisateur, Long> {
|
||||||
|
}
|
||||||
12
src/main/java/fr/clelia/avis/service/EditeurService.java
Normal file
12
src/main/java/fr/clelia/avis/service/EditeurService.java
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
package fr.clelia.avis.service;
|
||||||
|
|
||||||
|
import fr.clelia.avis.business.Editeur;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface EditeurService {
|
||||||
|
|
||||||
|
List<Editeur> recupererEditeurs();
|
||||||
|
|
||||||
|
List<Editeur> recupererEditeursAyantUnNomContenant(String nomRecherche);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
package fr.clelia.avis.service.impl;
|
||||||
|
|
||||||
|
import fr.clelia.avis.business.Editeur;
|
||||||
|
import fr.clelia.avis.repository.EditeurRepository;
|
||||||
|
import fr.clelia.avis.service.EditeurService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//@Component
|
||||||
|
@Service
|
||||||
|
public class EditeurServiceImpl implements EditeurService {
|
||||||
|
|
||||||
|
private final EditeurRepository editeurRepository;
|
||||||
|
|
||||||
|
// Ce constructeur va faire déduire à Spring
|
||||||
|
// qu'il doit d'abord instancier la repo
|
||||||
|
// avant d'instancier le service
|
||||||
|
public EditeurServiceImpl(EditeurRepository editeurRepository) {
|
||||||
|
this.editeurRepository = editeurRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Editeur> recupererEditeurs() {
|
||||||
|
return editeurRepository.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Editeur> recupererEditeursAyantUnNomContenant(String nomRecherche) {
|
||||||
|
return editeurRepository.findByNomContainingIgnoreCase(nomRecherche);
|
||||||
|
}
|
||||||
|
}
|
||||||
30
src/main/resources/templates/editeurs.html
Normal file
30
src/main/resources/templates/editeurs.html
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html xmlns:th="http://www.thymeleaf.org" lang="fr">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
||||||
|
<title>Editeurs</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div th:replace="~{entete}"></div>
|
||||||
|
<h1>Liste des éditeurs</h1>
|
||||||
|
<form action="editeurs" method="POST">
|
||||||
|
<input type="text" id="nom" name="NOM" placeholder="Nom de l'éditeur" th:value="${nom}">
|
||||||
|
<input type="submit" value="Rechercher">
|
||||||
|
</form>
|
||||||
|
<table class="table table-striped table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Id <a th:href="@{'index?page=0&sort=id'}">Trier</a></th>
|
||||||
|
<th>Logo <a th:href="@{'index?page=0&sort=logo'}">Trier</a></th>
|
||||||
|
<th>Nom <a th:href="@{'index?page=0&sort=nom'}">Trier</a></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tr th:each="editeur:${editeurs}">
|
||||||
|
<td th:text="${editeur.id}"></td>
|
||||||
|
<td><img th:src="@{'https://logo.clearbit.com/' + ${editeur.logo} + '?size=150'}" alt="Logo de l'éditeur'"></td>
|
||||||
|
<td th:text="${editeur.nom}"></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
32
src/main/resources/templates/entete.html
Normal file
32
src/main/resources/templates/entete.html
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td><a href="editeurs">Éditeurs</a></td>
|
||||||
|
<td><a href="jeux">Jeux</a></td>
|
||||||
|
<td><a href="plateformes">Plateformes</a></td>
|
||||||
|
<td><a href="configuration">Configuration</a></td>
|
||||||
|
|
||||||
|
<td><a href="/swagger-ui/index.html" target="swagger">Swagger</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>H2</td>
|
||||||
|
<td><a href="/h2-console" target="h2_console">Console</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>Actuator</td>
|
||||||
|
<td><a href="/beans" target="beans">Beans</a></td>
|
||||||
|
<td><a href="/health" target="health">Health</a></td>
|
||||||
|
<td><a href="/configprops" target="configprops">Propriétés de configuration</a></td>
|
||||||
|
<td><a href="/env" target="env">Environnement</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>Hibernate</td>
|
||||||
|
<td><a href="statistiques" target="statistiques">Statistiques</a></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
Loading…
Add table
Reference in a new issue