package com.allfree.allfreespringbackend.controlller; import com.allfree.allfreespringbackend.common.dto.CommonResponseDTO; import com.allfree.allfreespringbackend.model.Article; import com.allfree.allfreespringbackend.model.UpdateUserArticlesDTO; import com.allfree.allfreespringbackend.service.ArticleService; import com.allfree.allfreespringbackend.service.UserService; import com.allfree.allfreespringbackend.user.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; @CrossOrigin(origins = "*", maxAge = 3600) @RestController @RequestMapping("/api/v1") public class ArticlesManagerController { private final ArticleService articleService; private final UserService userService; @Autowired public ArticlesManagerController(ArticleService articleService, UserService userService) { this.articleService = articleService; this.userService = userService; } @PutMapping("/articleToUser") public User addArticleToUser(@RequestBody UpdateUserArticlesDTO updateArticles) { User user = userService.getUserById(updateArticles.getUserId()); for (Article userArticle : updateArticles.getUserArticles()) { Article ar = articleService.saveArticle(userArticle); user.addArticle(ar); } return userService.saveUser(user); } @GetMapping("/userId/{userId}/articles") public List
getUserArticles(@PathVariable Long userId) { User userById = userService.getUserById(userId); if (userById.getArticles().size() != 0) return userById.getArticles(); return null; } @PutMapping("test/fav/add") public ResponseEntity addArticleToFav(@RequestParam Long userID, @RequestParam Long articleID) { User user = userService.getUserById(userID); Article article = articleService.getArticleById(articleID); if (article == null) { return ResponseEntity.badRequest().body(new CommonResponseDTO("Articolul nu exista")); } user.getFavArticles().add(article); article.getUsersLikes().add(user); userService.saveUser(user); articleService.saveArticle(article); return ResponseEntity.ok(new CommonResponseDTO("Articolul [" + user.getFavArticles().get(0).getId() + "] adaugat la favorite")); } @GetMapping("test/fav/get") public List
getArticlesLikedBy(@RequestParam Long userID) { return userService.getUserById(userID).getFavArticles(); } @PutMapping("test/fav/delete") public ResponseEntity removeArticleFromFav(@RequestParam Long userId, @RequestParam Long articleId) { User user = userService.getUserById(userId); Article articleToRemove = articleService.getArticleById(articleId); if (Objects.nonNull(user) && Objects.nonNull(articleToRemove)) { user.getFavArticles().remove(articleToRemove); userService.saveUser(user); return ResponseEntity.ok("Articol eliminat"); } return ResponseEntity.ok("Articolul nu exista"); } }