Eh jsp j'ai fais des trucs
This commit is contained in:
parent
eb2f3bf151
commit
f41c830970
@ -76,6 +76,12 @@ public class AuthorController {
|
|||||||
.setPassword("");
|
.setPassword("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/{id}/avatar")
|
||||||
|
public byte[] getProfilePicture(@PathVariable UUID id) {
|
||||||
|
Author author = authorService.findById(id).orElseThrow(() -> new NotFoundException("Author not found"));
|
||||||
|
return author.getProfilePicture();
|
||||||
|
}
|
||||||
|
|
||||||
@DeleteMapping("/{id}")
|
@DeleteMapping("/{id}")
|
||||||
public void deleteUser(@PathVariable UUID id, Authentication authentication) {
|
public void deleteUser(@PathVariable UUID id, Authentication authentication) {
|
||||||
Author authorToDelete = authorService.verifyIfUserIsAuthorized(authentication, id);
|
Author authorToDelete = authorService.verifyIfUserIsAuthorized(authentication, id);
|
||||||
|
@ -9,6 +9,7 @@ import com.guams.review.service.AuthorService;
|
|||||||
import com.guams.review.service.CommentService;
|
import com.guams.review.service.CommentService;
|
||||||
import com.guams.review.service.PostService;
|
import com.guams.review.service.PostService;
|
||||||
import com.guams.review.service.mapper.Mapper;
|
import com.guams.review.service.mapper.Mapper;
|
||||||
|
import com.guams.review.model.dao.PostWithAuthor;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@ -39,6 +40,11 @@ public class PostController {
|
|||||||
return postService.list();
|
return postService.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("authors")
|
||||||
|
public List<PostWithAuthor> listPostsWithAuthor() {
|
||||||
|
return postService.listWithAuthors();
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public Post findPost(@PathVariable Long id) {
|
public Post findPost(@PathVariable Long id) {
|
||||||
return postService.findById(id).orElseThrow(() -> new NotFoundException("Post not found"));
|
return postService.findById(id).orElseThrow(() -> new NotFoundException("Post not found"));
|
||||||
|
@ -31,7 +31,7 @@ public interface CommentRepository extends CrudRepository<Comment, Long> {
|
|||||||
" JOIN comment_association ca ON ca.comment_fk = c.id" +
|
" JOIN comment_association ca ON ca.comment_fk = c.id" +
|
||||||
" JOIN post p ON p.id = ca.post_fk" +
|
" JOIN post p ON p.id = ca.post_fk" +
|
||||||
" JOIN author a ON ca.author_fk = a.id" +
|
" JOIN author a ON ca.author_fk = a.id" +
|
||||||
" WHERE p.id = 3")
|
" WHERE p.id = :postId")
|
||||||
List<CommentWithAuthor> getCommentsByPostId(Long postId);
|
List<CommentWithAuthor> getCommentsByPostId(Long postId);
|
||||||
|
|
||||||
@Modifying
|
@Modifying
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.guams.review.model;
|
package com.guams.review.model;
|
||||||
|
|
||||||
import com.guams.review.model.dao.Post;
|
import com.guams.review.model.dao.Post;
|
||||||
|
import com.guams.review.model.dao.PostWithAuthor;
|
||||||
import org.springframework.data.jdbc.repository.query.Query;
|
import org.springframework.data.jdbc.repository.query.Query;
|
||||||
import org.springframework.data.repository.CrudRepository;
|
import org.springframework.data.repository.CrudRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
@ -15,5 +16,24 @@ public interface PostRepository extends CrudRepository<Post, Long> {
|
|||||||
"from post join publication on post.id=publication.post_fk where publication.author_fk=:authorId")
|
"from post join publication on post.id=publication.post_fk where publication.author_fk=:authorId")
|
||||||
List<Post> findPostsOfAuthor(UUID authorId);
|
List<Post> findPostsOfAuthor(UUID authorId);
|
||||||
|
|
||||||
|
|
||||||
|
@Query(value = "SELECT " +
|
||||||
|
" a.id AS author_id, " +
|
||||||
|
" a.name AS author_name, " +
|
||||||
|
" a.profile_picture AS author_profile_picture, " +
|
||||||
|
" a.role AS role, " +
|
||||||
|
" p.id AS post_id, " +
|
||||||
|
" p.description AS post_description, " +
|
||||||
|
" p.illustration AS post_illustration, " +
|
||||||
|
" p.title AS post_title, " +
|
||||||
|
" p.body AS post_body, " +
|
||||||
|
" p.category AS post_category, " +
|
||||||
|
" p.publication_date AS post_publication_date, " +
|
||||||
|
" p.is_updated AS post_is_updated " +
|
||||||
|
"FROM post p " +
|
||||||
|
" JOIN publication pub ON p.id = pub.post_fk " +
|
||||||
|
" JOIN author a ON pub.author_fk = a.id;")
|
||||||
|
List<PostWithAuthor> findPostsWithAuthors();
|
||||||
|
|
||||||
List<Post> findAll();
|
List<Post> findAll();
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ public class CommentWithAuthor {
|
|||||||
private Long id;
|
private Long id;
|
||||||
private UUID authorId;
|
private UUID authorId;
|
||||||
private String authorName;
|
private String authorName;
|
||||||
private String profilePicture;
|
private byte[] profilePicture;
|
||||||
private String authorRole;
|
private String authorRole;
|
||||||
private String content;
|
private String content;
|
||||||
private Timestamp commentDate;
|
private Timestamp commentDate;
|
||||||
|
26
src/main/java/com/guams/review/model/dao/PostWithAuthor.java
Normal file
26
src/main/java/com/guams/review/model/dao/PostWithAuthor.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package com.guams.review.model.dao;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class PostWithAuthor {
|
||||||
|
private UUID authorId;
|
||||||
|
private String authorName;
|
||||||
|
private byte[] authorProfilePicture;
|
||||||
|
private String role;
|
||||||
|
private Long postId;
|
||||||
|
private String postDescription;
|
||||||
|
private byte[] postIllustration;
|
||||||
|
private String postTitle;
|
||||||
|
private String postBody;
|
||||||
|
private String postCategory;
|
||||||
|
private Timestamp postPublicationDate;
|
||||||
|
private Boolean postIsUpdated;
|
||||||
|
}
|
@ -4,6 +4,7 @@ package com.guams.review.service;
|
|||||||
import com.guams.review.model.AuthorRepository;
|
import com.guams.review.model.AuthorRepository;
|
||||||
import com.guams.review.model.dao.Post;
|
import com.guams.review.model.dao.Post;
|
||||||
import com.guams.review.model.PostRepository;
|
import com.guams.review.model.PostRepository;
|
||||||
|
import com.guams.review.model.dao.PostWithAuthor;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -27,6 +28,10 @@ public class PostService
|
|||||||
return postRepository.findById(id);
|
return postRepository.findById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<PostWithAuthor> listWithAuthors() {
|
||||||
|
return postRepository.findPostsWithAuthors();
|
||||||
|
}
|
||||||
|
|
||||||
public Post insert(Post post) {
|
public Post insert(Post post) {
|
||||||
return postRepository.save(post);
|
return postRepository.save(post);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user