-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #94 from Review-zip/dev
Dev
- Loading branch information
Showing
22 changed files
with
288 additions
and
105 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
src/main/java/com/example/ReviewZIP/domain/image/ImageConverter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.example.ReviewZIP.domain.image; | ||
|
||
import com.example.ReviewZIP.domain.image.dto.response.UploadImageResponseDto; | ||
import org.springframework.stereotype.Component; | ||
|
||
import java.util.List; | ||
import java.util.stream.Collectors; | ||
|
||
@Component | ||
public class ImageConverter { | ||
public static UploadImageResponseDto toUploadImageDto(List<Images> imagesList) { | ||
List<Long> imageIds = imagesList.stream().map(Images::getId).collect(Collectors.toList()); | ||
return new UploadImageResponseDto(imageIds); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 23 additions & 0 deletions
23
src/main/java/com/example/ReviewZIP/domain/image/ImagesController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package com.example.ReviewZIP.domain.image; | ||
|
||
import com.example.ReviewZIP.domain.image.dto.response.UploadImageResponseDto; | ||
import com.example.ReviewZIP.global.response.ApiResponse; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.web.bind.annotation.*; | ||
import org.springframework.web.multipart.MultipartFile; | ||
|
||
import java.util.List; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
@RequestMapping("/v1/images") | ||
public class ImagesController { | ||
private final ImagesService imageService; | ||
|
||
@PostMapping("/users/{userId}") | ||
public ApiResponse<UploadImageResponseDto> uploadImage(@PathVariable(name="userId") Long userId, @RequestParam("fileList") List<MultipartFile> fileList){ | ||
List<Images> imageList = imageService.uploadImage(fileList, userId); | ||
UploadImageResponseDto imageResponseDto = ImageConverter.toUploadImageDto(imageList); | ||
return ApiResponse.onSuccess(imageResponseDto); | ||
} | ||
} |
8 changes: 8 additions & 0 deletions
8
src/main/java/com/example/ReviewZIP/domain/image/ImagesRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.example.ReviewZIP.domain.image; | ||
|
||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.stereotype.Repository; | ||
|
||
@Repository | ||
public interface ImagesRepository extends JpaRepository<Images, Long> { | ||
} |
44 changes: 44 additions & 0 deletions
44
src/main/java/com/example/ReviewZIP/domain/image/ImagesService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package com.example.ReviewZIP.domain.image; | ||
|
||
import com.example.ReviewZIP.domain.user.Users; | ||
import com.example.ReviewZIP.domain.user.UsersRepository; | ||
import com.example.ReviewZIP.global.response.code.resultCode.ErrorStatus; | ||
import com.example.ReviewZIP.global.response.exception.handler.UsersHandler; | ||
import com.example.ReviewZIP.global.s3.S3Service; | ||
import com.example.ReviewZIP.global.s3.dto.S3Result; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
import org.springframework.web.multipart.MultipartFile; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
@Transactional(readOnly = true) | ||
public class ImagesService { | ||
private final ImagesRepository imagesRepository; | ||
private final UsersRepository usersRepository; | ||
private final S3Service s3Service; | ||
|
||
@Transactional | ||
public List<Images> uploadImage(List<MultipartFile> fileList, Long userId) { | ||
Users user = usersRepository.findById(userId).orElseThrow(() -> new UsersHandler(ErrorStatus.USER_NOT_FOUND)); | ||
|
||
List<Images> savedImages = new ArrayList<>(); | ||
for(MultipartFile file : fileList) { | ||
S3Result s3Result = s3Service.uploadFile(file); | ||
|
||
Images newImage = new Images(); | ||
newImage.setName(file.getOriginalFilename()); | ||
newImage.setUrl(s3Result.getFileUrl()); | ||
newImage.setType(file.getContentType()); | ||
newImage.setUser(user); | ||
|
||
savedImages.add(imagesRepository.save(newImage)); | ||
} | ||
|
||
return savedImages; | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/java/com/example/ReviewZIP/domain/image/dto/request/ImageRequestDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
package com.example.ReviewZIP.domain.image.dto.request; | ||
|
||
import lombok.Getter; | ||
|
||
import java.util.List; | ||
|
||
@Getter | ||
public class ImageRequestDto { | ||
private Long userId; | ||
private List<String> urlList; | ||
} |
13 changes: 13 additions & 0 deletions
13
src/main/java/com/example/ReviewZIP/domain/image/dto/response/UploadImageResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package com.example.ReviewZIP.domain.image.dto.response; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.NoArgsConstructor; | ||
|
||
import java.util.List; | ||
@Builder | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
public class UploadImageResponseDto { | ||
public List<Long> imageIds; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
src/main/java/com/example/ReviewZIP/domain/post/PostsController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package com.example.ReviewZIP.domain.post; | ||
|
||
import com.example.ReviewZIP.domain.post.dto.request.PostRequestDto; | ||
import com.example.ReviewZIP.domain.post.dto.response.PostResponseDto; | ||
import com.example.ReviewZIP.global.response.ApiResponse; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.web.bind.annotation.PostMapping; | ||
import org.springframework.web.bind.annotation.RequestBody; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
@RestController | ||
@RequiredArgsConstructor | ||
@RequestMapping("/v1/posts") | ||
public class PostsController { | ||
private final PostsService postsService; | ||
private final PostsConverter postsConverter; | ||
|
||
@PostMapping | ||
public ApiResponse<PostResponseDto.CreatedPostResponseDto> createPost(@RequestBody PostRequestDto postRequestDto){ | ||
Posts post = postsService.createPost(postRequestDto); | ||
return ApiResponse.onSuccess(PostsConverter.toPostResponseDto(post)); | ||
} | ||
} |
25 changes: 25 additions & 0 deletions
25
src/main/java/com/example/ReviewZIP/domain/post/PostsConverter.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package com.example.ReviewZIP.domain.post; | ||
|
||
import com.example.ReviewZIP.domain.post.dto.response.PostResponseDto; | ||
import com.example.ReviewZIP.domain.image.Images; | ||
import org.springframework.stereotype.Component; | ||
|
||
import java.util.List; | ||
import java.util.stream.Collectors; | ||
|
||
@Component | ||
public class PostsConverter { | ||
public static PostResponseDto.CreatedPostResponseDto toPostResponseDto(Posts post) { | ||
List<Long> imageIds = post.getPostImageList().stream() | ||
.map(Images::getId) | ||
.collect(Collectors.toList()); | ||
|
||
return PostResponseDto.CreatedPostResponseDto.builder() | ||
.postId(post.getId()) | ||
.comment(post.getComment()) | ||
.point(post.getPoint()) | ||
.userId(post.getUser().getId()) | ||
.imageIds(imageIds) | ||
.build(); | ||
} | ||
} |
44 changes: 44 additions & 0 deletions
44
src/main/java/com/example/ReviewZIP/domain/post/PostsService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package com.example.ReviewZIP.domain.post; | ||
|
||
import com.example.ReviewZIP.domain.image.Images; | ||
import com.example.ReviewZIP.domain.image.ImagesRepository; | ||
import com.example.ReviewZIP.domain.post.dto.request.PostRequestDto; | ||
import com.example.ReviewZIP.domain.user.Users; | ||
import com.example.ReviewZIP.domain.user.UsersRepository; | ||
import com.example.ReviewZIP.global.response.code.resultCode.ErrorStatus; | ||
import com.example.ReviewZIP.global.response.exception.handler.ImagesHandler; | ||
import com.example.ReviewZIP.global.response.exception.handler.UsersHandler; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
@Transactional(readOnly = true) | ||
public class PostsService { | ||
private final ImagesRepository imagesRepository; | ||
private final UsersRepository usersRepository; | ||
private final PostsRepository postsRepository; | ||
|
||
@Transactional | ||
public Posts createPost(PostRequestDto postRequestDto) { | ||
Users user = usersRepository.findById(postRequestDto.getUserId()).orElseThrow(() -> new UsersHandler(ErrorStatus.USER_NOT_FOUND)); | ||
|
||
Posts newPost = new Posts(); | ||
newPost.setUser(user); | ||
newPost.setComment(postRequestDto.getComment()); | ||
newPost.setPoint(postRequestDto.getPoint()); | ||
newPost.setIs_read(false); | ||
|
||
Posts savedPost = postsRepository.save(newPost); | ||
|
||
for (Long imageId : postRequestDto.getImageIds()) { | ||
Images image = imagesRepository.findById(imageId).orElseThrow(() -> new ImagesHandler(ErrorStatus.IMAGE_NOT_FOUND)); | ||
image.setPost(savedPost); | ||
image.setUser(user); | ||
imagesRepository.save(image); | ||
savedPost.getPostImageList().add(image); // Post 엔티티가 Images 엔티티의 변경 사항을 반영 | ||
} | ||
return savedPost; | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
src/main/java/com/example/ReviewZIP/domain/post/dto/request/PostRequestDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package com.example.ReviewZIP.domain.post.dto.request; | ||
|
||
import lombok.Getter; | ||
import lombok.Setter; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
@Getter | ||
public class PostRequestDto { | ||
private Long userId; | ||
private String comment; | ||
private Double point; | ||
private List<Long> imageIds = new ArrayList<>(); | ||
} |
20 changes: 20 additions & 0 deletions
20
src/main/java/com/example/ReviewZIP/domain/post/dto/response/PostResponseDto.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package com.example.ReviewZIP.domain.post.dto.response; | ||
|
||
import lombok.*; | ||
|
||
import java.util.List; | ||
|
||
|
||
public class PostResponseDto { | ||
@Builder | ||
@Getter | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
public static class CreatedPostResponseDto { | ||
private Long postId; | ||
private Long userId; | ||
private String comment; | ||
private Double point; | ||
private List<Long> imageIds; | ||
} | ||
} |
2 changes: 2 additions & 0 deletions
2
src/main/java/com/example/ReviewZIP/domain/user/UsersRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,8 @@ | ||
package com.example.ReviewZIP.domain.user; | ||
|
||
import org.springframework.data.jpa.repository.JpaRepository; | ||
import org.springframework.stereotype.Repository; | ||
|
||
@Repository | ||
public interface UsersRepository extends JpaRepository<Users, Long> { | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 8 additions & 0 deletions
8
src/main/java/com/example/ReviewZIP/global/response/exception/handler/ImagesHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
package com.example.ReviewZIP.global.response.exception.handler; | ||
|
||
import com.example.ReviewZIP.global.response.code.BaseErrorCode; | ||
import com.example.ReviewZIP.global.response.exception.GeneralException; | ||
|
||
public class ImagesHandler extends GeneralException { | ||
public ImagesHandler(BaseErrorCode errorCode) {super(errorCode);}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
30 changes: 0 additions & 30 deletions
30
src/main/java/com/example/ReviewZIP/global/s3/S3Controller.java
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.