parent
ca0f1509a7
commit
20b068d6bf
@ -1,21 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Admin;
|
||||
import com.example.wfwebapi.repository.AdminRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/admin")
|
||||
public class AdminController {
|
||||
|
||||
@Autowired
|
||||
private AdminRepository adminRepository;
|
||||
|
||||
@GetMapping("/{userId}")
|
||||
public Admin getAdmin(@PathVariable Long userId) {
|
||||
return adminRepository.findById(userId)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Admin non trouvé pour l'utilisateur : " + userId));
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.model.User;
|
||||
import com.example.wfwebapi.repository.UserRepository;
|
||||
import com.example.wfwebapi.security.JwtTokenProvider;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/auth")
|
||||
public class AuthController {
|
||||
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
private JwtTokenProvider tokenProvider;
|
||||
|
||||
@PostMapping("/login")
|
||||
public ResponseEntity<?> login(@RequestBody AuthRequest authRequest) {
|
||||
User user = userRepository.findByUsername(authRequest.getUsername())
|
||||
.orElseThrow(() -> new RuntimeException("Utilisateur non trouvé"));
|
||||
|
||||
if (!user.getPassword().equals(authRequest.getPassword())) {
|
||||
return ResponseEntity.status(401).body("Mot de passe invalide");
|
||||
}
|
||||
|
||||
String token = tokenProvider.createToken(user.getUsername());
|
||||
return ResponseEntity.ok(new AuthResponse(token));
|
||||
}
|
||||
|
||||
public static class AuthRequest {
|
||||
private String username;
|
||||
private String password;
|
||||
public String getUsername() { return username; }
|
||||
public void setUsername(String username) { this.username = username; }
|
||||
public String getPassword() { return password; }
|
||||
public void setPassword(String password) { this.password = password; }
|
||||
}
|
||||
|
||||
public static class AuthResponse {
|
||||
private String token;
|
||||
public AuthResponse(String token) { this.token = token; }
|
||||
public String getToken() { return token; }
|
||||
public void setToken(String token) { this.token = token; }
|
||||
}
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Caracter;
|
||||
import com.example.wfwebapi.repository.CaracterRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/caracter")
|
||||
public class CaracterController {
|
||||
|
||||
@Autowired
|
||||
private CaracterRepository caracterRepository;
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public Caracter getCaracterById(@PathVariable Long id) {
|
||||
return caracterRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Caracter non trouvé : " + id));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public Caracter createCaracter(@RequestBody Caracter caracter) {
|
||||
return caracterRepository.save(caracter);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public Caracter updateCaracter(@RequestBody Caracter updatedCaracter) {
|
||||
return caracterRepository.findById(updatedCaracter.getId())
|
||||
.map(c -> {
|
||||
c.setCaracter(updatedCaracter.getCaracter());
|
||||
c.setImage(updatedCaracter.getImage());
|
||||
return caracterRepository.save(c);
|
||||
}).orElseThrow(() -> new ResourceNotFoundException("Caracter non trouvé : " + updatedCaracter.getId()));
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteCaracter(@RequestParam Long id) {
|
||||
if (!caracterRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("Caracter non trouvé : " + id);
|
||||
caracterRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -1,35 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import java.util.List;
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Commentary;
|
||||
import com.example.wfwebapi.repository.CommentaryRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/commentary")
|
||||
public class CommentaryController {
|
||||
|
||||
@Autowired
|
||||
private CommentaryRepository commentaryRepository;
|
||||
|
||||
@GetMapping("/{quoteId}")
|
||||
public List<Commentary> getCommentariesByQuote(@PathVariable Long quoteId) {
|
||||
return commentaryRepository.findByQuote_Id(quoteId);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public Commentary addCommentary(@RequestParam Long quote, @RequestBody Commentary commentary) {
|
||||
commentary.setQuote(new com.example.wfwebapi.model.Quote() {{ setId(quote); }});
|
||||
return commentaryRepository.save(commentary);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteCommentariesByQuote(@RequestParam Long id) {
|
||||
List<Commentary> comments = commentaryRepository.findByQuote_Id(id);
|
||||
if(comments.isEmpty())
|
||||
throw new ResourceNotFoundException("Aucun commentaire trouvé pour la citation " + id);
|
||||
commentaryRepository.deleteAll(comments);
|
||||
}
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.DailyQuote;
|
||||
import com.example.wfwebapi.repository.DailyQuoteRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/dailyquote")
|
||||
public class DailyQuoteController {
|
||||
|
||||
@Autowired
|
||||
private DailyQuoteRepository dailyQuoteRepository;
|
||||
|
||||
@GetMapping
|
||||
public DailyQuote getDailyQuote() {
|
||||
return dailyQuoteRepository.findAll().stream().findFirst()
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Aucune DailyQuote définie"));
|
||||
}
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import java.util.List;
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Favorite;
|
||||
import com.example.wfwebapi.model.FavoriteId;
|
||||
import com.example.wfwebapi.repository.FavoriteRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/favorite")
|
||||
public class FavoriteController {
|
||||
|
||||
@Autowired
|
||||
private FavoriteRepository favoriteRepository;
|
||||
|
||||
@GetMapping("/{userId}")
|
||||
public List<Favorite> getFavoritesByUser(@PathVariable Long userId) {
|
||||
return favoriteRepository.findByUser_Id(userId);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public Favorite addFavorite(@RequestParam Long user, @RequestParam Long quote) {
|
||||
Favorite favorite = new Favorite();
|
||||
favorite.setId(new FavoriteId(user, quote));
|
||||
return favoriteRepository.save(favorite);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteFavorite(@RequestParam Long user, @RequestParam Long quote) {
|
||||
FavoriteId id = new FavoriteId(user, quote);
|
||||
if (!favoriteRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("Favorite non trouvée");
|
||||
favoriteRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -1,42 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Image;
|
||||
import com.example.wfwebapi.repository.ImageRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/image")
|
||||
public class ImageController {
|
||||
|
||||
@Autowired
|
||||
private ImageRepository imageRepository;
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public Image getImageById(@PathVariable Long id) {
|
||||
return imageRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Image non trouvée : " + id));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public Image createImage(@RequestBody Image image) {
|
||||
return imageRepository.save(image);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public Image updateImage(@RequestBody Image updatedImage) {
|
||||
return imageRepository.findById(updatedImage.getId())
|
||||
.map(img -> {
|
||||
img.setImgPath(updatedImage.getImgPath());
|
||||
return imageRepository.save(img);
|
||||
}).orElseThrow(() -> new ResourceNotFoundException("Image non trouvée : " + updatedImage.getId()));
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteImage(@RequestParam Long id) {
|
||||
if (!imageRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("Image non trouvée : " + id);
|
||||
imageRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Question;
|
||||
import com.example.wfwebapi.repository.QuestionRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/question")
|
||||
public class QuestionController {
|
||||
|
||||
@Autowired
|
||||
private QuestionRepository questionRepository;
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public Question getQuestionById(@PathVariable Long id) {
|
||||
return questionRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Question non trouvée : " + id));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public Question createQuestion(@RequestBody Question question) {
|
||||
return questionRepository.save(question);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public Question updateQuestion(@RequestBody Question updatedQuestion) {
|
||||
return questionRepository.findById(updatedQuestion.getId())
|
||||
.map(q -> {
|
||||
q.setTexte(updatedQuestion.getTexte());
|
||||
q.setAnswerA(updatedQuestion.getAnswerA());
|
||||
q.setAnswerB(updatedQuestion.getAnswerB());
|
||||
q.setAnswerC(updatedQuestion.getAnswerC());
|
||||
q.setAnswerD(updatedQuestion.getAnswerD());
|
||||
q.setCAnswer(updatedQuestion.getCAnswer());
|
||||
return questionRepository.save(q);
|
||||
}).orElseThrow(() -> new ResourceNotFoundException("Question non trouvée : " + updatedQuestion.getId()));
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteQuestion(@RequestParam Long id) {
|
||||
if (!questionRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("Question non trouvée : " + id);
|
||||
questionRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Quiz;
|
||||
import com.example.wfwebapi.repository.QuizRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/quiz")
|
||||
public class QuizController {
|
||||
|
||||
@Autowired
|
||||
private QuizRepository quizRepository;
|
||||
|
||||
@GetMapping
|
||||
public List<Quiz> getAllQuiz() {
|
||||
return quizRepository.findAll();
|
||||
}
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public Quiz getQuizById(@PathVariable Long id) {
|
||||
return quizRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Quiz non trouvé : " + id));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public Quiz createQuiz(@RequestBody Quiz quiz) {
|
||||
return quizRepository.save(quiz);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public Quiz updateQuiz(@RequestBody Quiz updatedQuiz) {
|
||||
return quizRepository.findById(updatedQuiz.getId())
|
||||
.map(q -> {
|
||||
q.setTitle(updatedQuiz.getTitle());
|
||||
q.setImage(updatedQuiz.getImage());
|
||||
return quizRepository.save(q);
|
||||
}).orElseThrow(() -> new ResourceNotFoundException("Quiz non trouvé : " + updatedQuiz.getId()));
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteQuiz(@RequestParam Long id) {
|
||||
if (!quizRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("Quiz non trouvé : " + id);
|
||||
quizRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import com.example.wfwebapi.assembler.QuoteModelAssembler;
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Quote;
|
||||
import com.example.wfwebapi.repository.QuoteRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.hateoas.CollectionModel;
|
||||
import org.springframework.hateoas.EntityModel;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/quote")
|
||||
public class QuoteController {
|
||||
|
||||
@Autowired
|
||||
private QuoteRepository quoteRepository;
|
||||
|
||||
@Autowired
|
||||
private QuoteModelAssembler assembler;
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public EntityModel<Quote> getQuoteById(@PathVariable Long id) {
|
||||
Quote quote = quoteRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Citation non trouvée : " + id));
|
||||
return assembler.toModel(quote);
|
||||
}
|
||||
|
||||
@GetMapping("/all")
|
||||
public CollectionModel<EntityModel<Quote>> getAllQuotes(@RequestParam int index, @RequestParam int count) {
|
||||
List<EntityModel<Quote>> quotes = quoteRepository.findAll(PageRequest.of(index, count))
|
||||
.stream().map(assembler::toModel)
|
||||
.collect(Collectors.toList());
|
||||
return CollectionModel.of(quotes);
|
||||
}
|
||||
|
||||
@GetMapping("/dailyquote")
|
||||
public EntityModel<Quote> getDailyQuote(@RequestParam int year, @RequestParam int month,
|
||||
@RequestParam int day, @RequestParam String lang) {
|
||||
// Exemple : renvoi la première citation correspondant à la langue
|
||||
Quote quote = quoteRepository.findAll().stream()
|
||||
.filter(q -> q.getLangue().equalsIgnoreCase(lang))
|
||||
.findFirst()
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Aucune citation trouvée pour la langue " + lang));
|
||||
return assembler.toModel(quote);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public EntityModel<Quote> createQuote(@RequestBody Quote newQuote) {
|
||||
Quote quote = quoteRepository.save(newQuote);
|
||||
return assembler.toModel(quote);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public EntityModel<Quote> updateQuote(@RequestBody Quote updatedQuote) {
|
||||
Quote quote = quoteRepository.findById(updatedQuote.getId())
|
||||
.map(q -> {
|
||||
q.setContent(updatedQuote.getContent());
|
||||
q.setLangue(updatedQuote.getLangue());
|
||||
q.setLikes(updatedQuote.getLikes());
|
||||
q.setIsValide(updatedQuote.getIsValide());
|
||||
q.setReason(updatedQuote.getReason());
|
||||
q.setCaracter(updatedQuote.getCaracter());
|
||||
q.setSource(updatedQuote.getSource());
|
||||
q.setUserVerif(updatedQuote.getUserVerif());
|
||||
return quoteRepository.save(q);
|
||||
}).orElseThrow(() -> new ResourceNotFoundException("Citation non trouvée : " + updatedQuote.getId()));
|
||||
return assembler.toModel(quote);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
public void deleteQuote(@RequestParam Long idQuote) {
|
||||
if (!quoteRepository.existsById(idQuote))
|
||||
throw new ResourceNotFoundException("Citation non trouvée : " + idQuote);
|
||||
quoteRepository.deleteById(idQuote);
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.RecordQuiz;
|
||||
import com.example.wfwebapi.model.RecordQuizId;
|
||||
import com.example.wfwebapi.repository.RecordQuizRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/recordquiz")
|
||||
public class RecordQuizController {
|
||||
|
||||
@Autowired
|
||||
private RecordQuizRepository recordQuizRepository;
|
||||
|
||||
@GetMapping
|
||||
public RecordQuiz getRecord(@RequestParam Long user, @RequestParam Long quiz) {
|
||||
RecordQuizId id = new RecordQuizId(user, quiz);
|
||||
return recordQuizRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("RecordQuiz non trouvé"));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public RecordQuiz createRecord(@RequestBody RecordQuiz recordQuiz) {
|
||||
return recordQuizRepository.save(recordQuiz);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public RecordQuiz updateRecord(@RequestBody RecordQuiz recordQuiz) {
|
||||
RecordQuizId id = recordQuiz.getId();
|
||||
if (!recordQuizRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("RecordQuiz non trouvé");
|
||||
return recordQuizRepository.save(recordQuiz);
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteRecord(@RequestParam Long user, @RequestParam Long quiz) {
|
||||
RecordQuizId id = new RecordQuizId(user, quiz);
|
||||
if (!recordQuizRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("RecordQuiz non trouvé");
|
||||
recordQuizRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -1,43 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.Source;
|
||||
import com.example.wfwebapi.repository.SourceRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/source")
|
||||
public class SourceController {
|
||||
|
||||
@Autowired
|
||||
private SourceRepository sourceRepository;
|
||||
|
||||
@GetMapping("/{id}")
|
||||
public Source getSourceById(@PathVariable Long id) {
|
||||
return sourceRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Source non trouvée : " + id));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public Source createSource(@RequestBody Source source) {
|
||||
return sourceRepository.save(source);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
public Source updateSource(@RequestBody Source updatedSource) {
|
||||
return sourceRepository.findById(updatedSource.getId())
|
||||
.map(s -> {
|
||||
s.setTitle(updatedSource.getTitle());
|
||||
s.setDateS(updatedSource.getDateS());
|
||||
return sourceRepository.save(s);
|
||||
}).orElseThrow(() -> new ResourceNotFoundException("Source non trouvée : " + updatedSource.getId()));
|
||||
}
|
||||
|
||||
@DeleteMapping
|
||||
public void deleteSource(@RequestParam Long id) {
|
||||
if (!sourceRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("Source non trouvée : " + id);
|
||||
sourceRepository.deleteById(id);
|
||||
}
|
||||
}
|
@ -1,71 +0,0 @@
|
||||
package com.example.wfwebapi.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import com.example.wfwebapi.assembler.UserModelAssembler;
|
||||
import com.example.wfwebapi.exception.ResourceNotFoundException;
|
||||
import com.example.wfwebapi.model.User;
|
||||
import com.example.wfwebapi.repository.UserRepository;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.hateoas.CollectionModel;
|
||||
import org.springframework.hateoas.EntityModel;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/v1/users")
|
||||
public class UserController {
|
||||
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
private UserModelAssembler assembler;
|
||||
|
||||
// GET /api/v1/users/{id}
|
||||
@GetMapping("/{id}")
|
||||
public EntityModel<User> getUserById(@PathVariable Long id) {
|
||||
User user = userRepository.findById(id)
|
||||
.orElseThrow(() -> new ResourceNotFoundException("Utilisateur non trouvé : " + id));
|
||||
return assembler.toModel(user);
|
||||
}
|
||||
|
||||
// GET /api/v1/users/all?index=0&count=5
|
||||
@GetMapping("/all")
|
||||
public CollectionModel<EntityModel<User>> getAllUsers(@RequestParam int index, @RequestParam int count) {
|
||||
List<EntityModel<User>> users = userRepository.findAll(PageRequest.of(index, count))
|
||||
.stream().map(assembler::toModel)
|
||||
.collect(Collectors.toList());
|
||||
return CollectionModel.of(users);
|
||||
}
|
||||
|
||||
// POST /api/v1/users
|
||||
@PostMapping
|
||||
public EntityModel<User> createUser(@RequestBody User newUser) {
|
||||
User user = userRepository.save(newUser);
|
||||
return assembler.toModel(user);
|
||||
}
|
||||
|
||||
// PUT /api/v1/users?id=1
|
||||
@PutMapping
|
||||
public EntityModel<User> updateUser(@RequestParam Long id, @RequestBody User updatedUser) {
|
||||
User user = userRepository.findById(id)
|
||||
.map(u -> {
|
||||
u.setUsername(updatedUser.getUsername());
|
||||
u.setEmail(updatedUser.getEmail());
|
||||
u.setPassword(updatedUser.getPassword());
|
||||
u.setImage(updatedUser.getImage());
|
||||
u.setCreation(updatedUser.getCreation());
|
||||
return userRepository.save(u);
|
||||
}).orElseThrow(() -> new ResourceNotFoundException("Utilisateur non trouvé : " + id));
|
||||
return assembler.toModel(user);
|
||||
}
|
||||
|
||||
// DELETE /api/v1/users?id=1
|
||||
@DeleteMapping
|
||||
public void deleteUser(@RequestParam Long id) {
|
||||
if (!userRepository.existsById(id))
|
||||
throw new ResourceNotFoundException("Utilisateur non trouvé : " + id);
|
||||
userRepository.deleteById(id);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue