Ajout controller Jeu (routes GET /api/v1/jeux & /api/v1/jeux/{id})

Springboot
Alix JEUDI--LEMOINE 1 year ago
parent d459563cce
commit 06b493b561

@ -1,2 +1,39 @@
package fr.iut.sciencequest.sae.controllers;public class JeuController { package fr.iut.sciencequest.sae.controllers;
import fr.iut.sciencequest.sae.dto.jeu.JeuDTO;
import fr.iut.sciencequest.sae.entities.Jeu;
import fr.iut.sciencequest.sae.exceptions.notFound.JeuNotFoundException;
import fr.iut.sciencequest.sae.repositories.JeuRepository;
import lombok.AllArgsConstructor;
import org.modelmapper.ModelMapper;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
@RestController
@AllArgsConstructor
@RequestMapping("/api/v1/jeux")
public class JeuController {
private final JeuRepository jeuRepository;
private final ModelMapper modelMapper;
@RequestMapping(value = "/{id}",method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public Jeu getJeu(@PathVariable int id) {
return this.jeuRepository.findById(id).orElseThrow(() -> new JeuNotFoundException(id));
}
@GetMapping(produces = MediaType.APPLICATION_JSON_VALUE)
public Iterable<JeuDTO> getJeux() {
List<JeuDTO> jeuDTOList = new ArrayList<>();
for(Jeu jeu : this.jeuRepository.findAll()) {
jeuDTOList.add(this.modelMapper.map(jeu, JeuDTO.class).add(
linkTo(JeuController.class).slash(jeu.getId()).withRel("self")
));
}
return jeuDTOList;
}
} }

Loading…
Cancel
Save