ajout du controleur

travailApiJean
Siwa12100 1 year ago
parent 03217af0f6
commit 33b4655fe7

@ -18,21 +18,23 @@
<maven.compiler.source>18</maven.compiler.source>
<maven.compiler.target>18</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
</dependency>
<dependency>
@ -41,9 +43,10 @@
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
</dependency>
</dependencies>

@ -1,11 +1,31 @@
package VeraxFeather.controleurs;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import VeraxFeather.modele.articles.IArticlesDataManager;
import VeraxFeather.modele.articles.stub.StubArticles;
import VeraxFeather.modele.articles.Article;
import java.util.List;
@RestController
public class ArticlesControleur {
private final IArticlesDataManager articlesDataManager = new StubArticles();
@GetMapping(value="/articles", produces="application/json")
public List<Article> getAllArticles() {
return articlesDataManager.getAllArticles();
}
@GetMapping(value="/articles/{id}", produces="application/json")
public Article getArticle(@PathVariable int id) {
System.out.println("Id renseigné : " + id);
return articlesDataManager.getArticle(id);
}
@GetMapping(value="/test")
public String testAPI() {
return "L'API fonctionne correctement!";

@ -18,6 +18,7 @@ public class Article {
public Article(int id, String titre, String description, String temps, String date, String auteur, String imagePrincipale) {
this.id = id;
this.titre = titre;
this.description = description;
this.temps = temps;

@ -0,0 +1,111 @@
package VeraxFeather.modele.articles.stub;
import VeraxFeather.modele.articles.IArticlesDataManager;
import VeraxFeather.modele.articles.Article;
import VeraxFeather.modele.articles.contenus.Contenu;
import VeraxFeather.modele.articles.contenus.ContenuParagraphe;
import VeraxFeather.modele.articles.contenus.ContenuMedia;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class StubArticles implements IArticlesDataManager {
private List<Article> lArticles;
public StubArticles() {
chargerArticles();
}
private void chargerArticles() {
lArticles = new ArrayList<>();
Map<String, List<Contenu>> contenuMap = chargerContenuParagraphe();
// Article 1
Article article1 = new Article(1, "Thinkerview", "Thinkerview est une chaîne youtube d'interview-débat...",
"3", LocalDate.now().toString(), "Siwa", "assets/img/mainThinkerview.webp");
article1.remplirArticle(contenuMap.get("article1"));
lArticles.add(article1);
// Article 2
Article article2 = new Article(2, "Guerre en Ukraine : Les troupes ukrainiennes reprennent-elles du terrain ?",
"Les troupes ukrainiennes reprennent-elles du territoire ?...",
"7", LocalDate.now().toString(), "Siwa", "https://images.ladepeche.fr/api/v1/images/view/64e31dd60f90f526a4234177/large/image.jpg?v=1");
article2.remplirArticle(contenuMap.get("article2"));
lArticles.add(article2);
}
private Map<String, List<Contenu>> chargerContenuParagraphe() {
Map<String, List<Contenu>> contenuMap = new HashMap<>();
List<Contenu> article1Contenus = new ArrayList<>();
List<Contenu> article2Contenus = new ArrayList<>();
List<Contenu> article3Contenus = new ArrayList<>();
// Contenu de l'article 1
article1Contenus.add(new ContenuParagraphe(1, "Le mystérieux cygne noir.",
"Sous les traits dun mystérieux cygne noir, un objet vidéo non identifié plane dans la galaxie médiatique. Ambiance Star Wars..."));
article1Contenus.add(new ContenuMedia(0, "Des sujets majeurs abordés", "https://www.systext.org/sites/default/files/styles/large/public/Ill_Thinkerview_Janv2022.png?itok=JvlFQmCH"));
article1Contenus.add(new ContenuParagraphe(2, "Penser, réfléchir et s'exprimer librement.",
"Dernier carton en date : un entretien de deux heures avec Juan Branco..."));
article1Contenus.add(new ContenuMedia(1, "De prestigieux et fascinants invités", "https://i.ytimg.com/vi/_D-AnsdbnRI/maxresdefault.jpg"));
article1Contenus.add(new ContenuParagraphe(3, "Une alternative dans un monde aux informations formatées",
"\"Nous faisons des interviews aux perspectives alternatives dans un monde aux informations formatées\"..."));
article1Contenus.add(new ContenuMedia(2, "Prendre le temps d'écouter les experts dans leurs domaines.", "https://www.youtube.com/embed/1tTksQL2kqs"));
// Contenu de l'article 2
article2Contenus.add(new ContenuParagraphe(1, "Oui les Ukrainiens reprennent du terrain",
"Timéo demande à Eric Biegala, grand reporter à la rédaction internationale de Radio France..."));
article2Contenus.add(new ContenuMedia(1, "Des violents affrontements", "https://images.ladepeche.fr/api/v1/images/view/655a496a7097bc144658af8c/large/image.jpg?v=1"));
article2Contenus.add(new ContenuParagraphe(2, "Non les rayons ne seront pas vides cet hiver",
"Lorenzo se demande s'il est vrai \"qu'il y aura une pénurie de produits étrangers cet hiver\"..."));
article2Contenus.add(new ContenuMedia(2, "Une carte en perpétuelle évolution",
"https://ds1.static.rtbf.be/image/media/object/default/16x9/1920x1080/4/e/6/4e67668ff30a378cbf0a9172f92712a7.jpg"));
article2Contenus.add(new ContenuParagraphe(3, "Le gaz va augmenter en 2023, mais l'Etat va continuer à aider",
"Isra se demande s'il est vrai \"que le gaz va être plus cher cet hiver\"..."));
// Contenu de l'article 3
article3Contenus.add(new ContenuParagraphe(1, "Une certaine \"tempête Jinette\" en Guyane",
"Ne vous laissez pas convaincre par les nuages et les pluies au-dessus de l'île de Cayenne ce matin..."));
article3Contenus.add(new ContenuMedia(1, "Pour aujourd'hui, la vigilance est au vert en Guyane.",
"https://medias.franceantilles.fr/api/v1/images/view/6560a041c9b8a232734f9fda/width_1000/image.jpg"));
article3Contenus.add(new ContenuParagraphe(2, "De simples petites averses en prévision !",
"Les quelques averses qui passent actuellement au-dessus de l'île de Cayenne et des savanes ne sont que passagères..."));
article3Contenus.add(new ContenuMedia(2, "Le faux document en question. Diffusé depuis hier soir.",
"https://medias.franceantilles.fr/api/v1/images/view/6560b08a04eeb6664b7f5488/width_1000/image.jpg"));
contenuMap.put("article1", article1Contenus);
contenuMap.put("article2", article2Contenus);
contenuMap.put("article3", article3Contenus);
return contenuMap;
}
@Override
public List<Article> getAllArticles() {
return lArticles;
}
@Override
public Article getArticle(int id) {
System.out.println("Passage dans getArticle avec comme id : " + id);
System.out.println("Nombre d'articles disponibles : " + lArticles.size());
Article articleARenvoyer = lArticles.stream().filter(article -> article.getId() == id).findFirst().orElse(null);
System.out.println(articleARenvoyer);
// Article articleARenvoyer = this.lArticles.get(id);
return articleARenvoyer;
}
@Override
public List<Article> getDerniersArticles(int nbArticles) {
return lArticles.subList(0, Math.min(nbArticles, lArticles.size()));
}
}
Loading…
Cancel
Save