Skip to content

Commit

Permalink
feat : 게시물 삭제 수정 API 생성
Browse files Browse the repository at this point in the history
  • Loading branch information
MyunghyunNero committed Nov 21, 2023
1 parent 7f326bf commit 27afba7
Show file tree
Hide file tree
Showing 8 changed files with 204 additions and 8 deletions.
32 changes: 32 additions & 0 deletions src/main/java/kusitms/gallae/controller/ArchiveController.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
import kusitms.gallae.domain.Review;
import kusitms.gallae.dto.archive.*;
import kusitms.gallae.dto.review.ReviewDtoRes;
import kusitms.gallae.dto.review.ReviewEditModel;
import kusitms.gallae.dto.review.ReviewEditReq;
import kusitms.gallae.global.S3Service;
import kusitms.gallae.service.archive.ArchiveService;
import lombok.RequiredArgsConstructor;
Expand Down Expand Up @@ -105,6 +107,36 @@ public ResponseEntity<BaseResponse<Long>> saveArchive(

}

@Operation(summary = "자료실 편집", description = """
저장이랑 다르게
archiveId도 같이 보내야합니다.
""")
@PostMapping("/editArchive")
public ResponseEntity<BaseResponse<Long>> editArchive(
@ModelAttribute
ArchiveEditModel archiveEditModel
) throws IOException {
String fileUrl = null;
String originalFilename = null; // 원본 파일 이름을 저장할 변수

if (archiveEditModel.getFile() != null && !archiveEditModel.getFile().isEmpty()) {
originalFilename = archiveEditModel.getFile().getOriginalFilename(); // 원본 파일 이름 가져오기
fileUrl = s3Service.upload(archiveEditModel.getFile());
}

ArchiveEditReq archiveEditReq = new ArchiveEditReq();
archiveEditReq.setArchiveId(archiveEditModel.getArchiveId());
archiveEditReq.setTitle(archiveEditModel.getTitle());
archiveEditReq.setWriter(archiveEditModel.getWriter());
archiveEditReq.setCategory(archiveEditModel.getCategory());
archiveEditReq.setFileUrl(fileUrl);
archiveEditReq.setFileName(originalFilename);
archiveEditReq.setBody(archiveEditModel.getBody());
archiveEditReq.setHashTags(archiveEditModel.getHashTags());

return ResponseEntity.ok(new BaseResponse<>(archiveService.editArchive(archiveEditReq)));

}
@Operation(summary = "자료실 정보 가져오기", description = """
포인트가 부족하면
\n
Expand Down
31 changes: 31 additions & 0 deletions src/main/java/kusitms/gallae/controller/ReviewController.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,37 @@ public ResponseEntity<BaseResponse<Long>> saveReview(

}

@Operation(summary = "리뷰 편집", description = """
저장이랑 다르게
reivewId도 같이 보내야합니다.
""")
@PostMapping("/editReview")
public ResponseEntity<BaseResponse<Long>> editReview(
@ModelAttribute
ReviewEditModel reviewEditModel
) throws IOException {
String fileUrl = null;
String originalFilename = null; // 원본 파일 이름을 저장할 변수

if (reviewEditModel.getFile() != null && !reviewEditModel.getFile().isEmpty()) {
originalFilename = reviewEditModel.getFile().getOriginalFilename(); // 원본 파일 이름 가져오기
fileUrl = s3Service.upload(reviewEditModel.getFile());
}

ReviewEditReq reviewEditReq = new ReviewEditReq();
reviewEditReq.setReviewId(reviewEditModel.getReviewId());
reviewEditReq.setTitle(reviewEditModel.getTitle());
reviewEditReq.setWriter(reviewEditModel.getWriter());
reviewEditReq.setCategory(reviewEditModel.getCategory());
reviewEditReq.setFileUrl(fileUrl);
reviewEditReq.setFileName(originalFilename);
reviewEditReq.setBody(reviewEditModel.getBody());
reviewEditReq.setHashTags(reviewEditModel.getHashTags());

return ResponseEntity.ok(new BaseResponse<>(reviewService.editReivew(reviewEditReq)));

}


@Operation(summary = "지원후기 정보 가져오기", description = """
포인트가 부족하면
Expand Down
23 changes: 23 additions & 0 deletions src/main/java/kusitms/gallae/dto/archive/ArchiveEditModel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package kusitms.gallae.dto.archive;

import lombok.Data;
import org.springframework.web.multipart.MultipartFile;


@Data
public class ArchiveEditModel {

private Long archiveId;

private String title;

private String category;

private String body;

private String hashTags;

private String writer;

private MultipartFile file;
}
25 changes: 25 additions & 0 deletions src/main/java/kusitms/gallae/dto/archive/ArchiveEditReq.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package kusitms.gallae.dto.archive;

import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

@Data
public class ArchiveEditReq {
private Long archiveId;

private String writer;

private String title;

private String category;

private String body;

private String hashTags;

private String fileName;

private String fileUrl;

private MultipartFile file;
}
24 changes: 24 additions & 0 deletions src/main/java/kusitms/gallae/dto/review/ReviewEditModel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package kusitms.gallae.dto.review;

import lombok.Data;
import org.springframework.web.multipart.MultipartFile;


@Data
public class ReviewEditModel {

private Long reviewId;

private String title;

private String category;

private String body;

private String hashTags;

private String writer;

private MultipartFile file;

}
27 changes: 27 additions & 0 deletions src/main/java/kusitms/gallae/dto/review/ReviewEditReq.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package kusitms.gallae.dto.review;


import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

@Data
public class ReviewEditReq {

private Long reviewId;

private String writer;

private String title;

private String category;

private String body;

private String hashTags;

private String fileName;

private String fileUrl;

private MultipartFile file;
}
26 changes: 22 additions & 4 deletions src/main/java/kusitms/gallae/service/archive/ArchiveService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@
import kusitms.gallae.config.BaseException;
import kusitms.gallae.config.BaseResponseStatus;
import kusitms.gallae.domain.*;
import kusitms.gallae.dto.archive.ArchiveDetailRes;
import kusitms.gallae.dto.archive.ArchiveDtoRes;
import kusitms.gallae.dto.archive.ArchivePageRes;
import kusitms.gallae.dto.archive.ArchivePostReq;
import kusitms.gallae.dto.archive.*;
import kusitms.gallae.dto.review.ReviewEditReq;
import kusitms.gallae.global.S3Service;
import kusitms.gallae.repository.archive.ArchiveRepository;
import kusitms.gallae.repository.archive.ArchiveRespositoryCustom;
import kusitms.gallae.repository.favoriteArchiveRepository.FavoriteArchiveRepository;
Expand Down Expand Up @@ -45,6 +44,9 @@ public class ArchiveService {
@Autowired
private UserArchiveRepository userArchiveRepository;

@Autowired
private S3Service s3Service;

public ArchivePageRes getArchivesByCategory(String category, Pageable pageable) {
Page<Archive> archives = archiveRespositoryCustom.findArchiveDynamicCategory(category,pageable);
List<ArchiveDtoRes> archiveDtos = archives.getContent().stream()
Expand Down Expand Up @@ -74,6 +76,22 @@ public ArchiveDetailRes checkArchiveEditable(Long archiveId, String username) {
return convertArchive(archive,user);
}

public Long editArchive(ArchiveEditReq archiveEditReq) {
Archive archive = archiveRepository.findById(archiveEditReq.getArchiveId()).orElse(null);
if(archive.getFileUrl() != null ){
s3Service.deleteFile(archiveEditReq.getFileUrl());
}
archive.setTitle(archiveEditReq.getTitle());
archive.setBody(archiveEditReq.getBody());
archive.setCategory(archiveEditReq.getCategory());
archive.setFileName(archiveEditReq.getFileName());
archive.setWriter(archiveEditReq.getWriter());
archive.setFileUrl(archiveEditReq.getFileUrl());
archive.setHashtag(archiveEditReq.getHashTags());
Archive saveArchive = archiveRepository.save(archive);
return saveArchive.getId();
}

public Long postArchive(ArchivePostReq archivePostReq, String username) {
Archive archive = new Archive();
User user = userRepository.findById(Long.valueOf(username)).get();
Expand Down
24 changes: 20 additions & 4 deletions src/main/java/kusitms/gallae/service/review/ReviewService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@
import kusitms.gallae.domain.*;

import kusitms.gallae.dto.archive.ArchiveDetailRes;
import kusitms.gallae.dto.review.ReviewDetailRes;
import kusitms.gallae.dto.review.ReviewDtoRes;
import kusitms.gallae.dto.review.ReviewPageRes;
import kusitms.gallae.dto.review.ReviewPostReq;
import kusitms.gallae.dto.review.*;
import kusitms.gallae.global.S3Service;
import kusitms.gallae.repository.favoriteReviewRepository.FavoriteReviewRepository;
import kusitms.gallae.repository.point.PointRepository;
import kusitms.gallae.repository.review.ReviewRepository;
Expand Down Expand Up @@ -46,6 +44,9 @@ public class ReviewService {
@Autowired
private UserReviewRepository userReviewRepository;

@Autowired
private S3Service s3Service;


public ReviewPageRes getReviewsByCategory(String category, Pageable pageable) {
Page<Review> reviews = reviewRepositoryCustom.findReviewDynamicCategory(category,pageable);
Expand Down Expand Up @@ -95,6 +96,21 @@ public Long postReivew(ReviewPostReq reviewPostReq,String username) {
userRepository.save(user);
return saveReview.getId();
}
public Long editReivew(ReviewEditReq reviewEditReq) {
Review review = reviewRepository.findById(reviewEditReq.getReviewId()).orElse(null);
if(review.getFileUrl() != null ){
s3Service.deleteFile(reviewEditReq.getFileUrl());
}
review.setTitle(reviewEditReq.getTitle());
review.setBody(reviewEditReq.getBody());
review.setCategory(reviewEditReq.getCategory());
review.setFileName(reviewEditReq.getFileName());
review.setWriter(reviewEditReq.getWriter());
review.setFileUrl(reviewEditReq.getFileUrl());
review.setHashtag(reviewEditReq.getHashTags());
Review saveReview = reviewRepository.save(review);
return saveReview.getId();
}

public ReviewDetailRes checkReviewEditable(Long reviewId, String username) {
Review review = reviewRepository.findById(reviewId).orElse(null);
Expand Down

0 comments on commit 27afba7

Please sign in to comment.