Restart controllers from 0

TommyVersion
tomivt 2 months ago
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…
Cancel
Save