2020import com .example .FixLog .repository .tag .TagRepository ;
2121import jakarta .transaction .Transactional ;
2222import org .springframework .stereotype .Service ;
23+ import org .springframework .web .multipart .MultipartFile ;
2324
2425import java .time .LocalDate ;
2526import java .time .LocalDateTime ;
@@ -36,16 +37,19 @@ public class PostService {
3637 private final TagRepository tagRepository ;
3738 private final BookmarkFolderRepository bookmarkFolderRepository ;
3839 private final MemberService memberService ;
40+ private final S3Service s3Service ;
3941
4042 public PostService (PostRepository postRepository , PostLikeRepository postLikeRepository ,
4143 BookmarkRepository bookmarkRepository , TagRepository tagRepository ,
42- BookmarkFolderRepository bookmarkFolderRepository , MemberService memberService ){
44+ BookmarkFolderRepository bookmarkFolderRepository , MemberService memberService ,
45+ S3Service s3Service ){
4346 this .postRepository = postRepository ;
4447 this .postLikeRepository = postLikeRepository ;
4548 this .bookmarkRepository = bookmarkRepository ;
4649 this .tagRepository = tagRepository ;
4750 this .bookmarkFolderRepository = bookmarkFolderRepository ;
4851 this .memberService = memberService ;
52+ this .s3Service = s3Service ;
4953 }
5054
5155 // 이미지 null일 때 default 사진으로 변경 (프로필 사진,
@@ -83,6 +87,7 @@ public void createPost(PostRequestDto postRequestDto){
8387 .editedAt (LocalDateTime .now ())
8488 .postTags (new ArrayList <>())
8589 .build ();
90+ // Todo : 여기서 사진 발생하면 s3 처리하기
8691
8792 // 태그 저장
8893 for (Tag tag : tags ) {
@@ -92,6 +97,16 @@ public void createPost(PostRequestDto postRequestDto){
9297 postRepository .save (newPost );
9398 }
9499
100+ // 이미지 파일 마크다운으로 변경
101+ public String uploadImage (MultipartFile imageFile ){
102+ if (imageFile == null || imageFile .isEmpty ()){
103+ throw new CustomException (ErrorCode .IMAGE_UPLOAD_FAILED );
104+ }
105+
106+ String imageUrl = s3Service .upload (imageFile , "post-image" );
107+ return "" ;
108+ }
109+
95110 // 태그 다 선택 했는지
96111 private List <Tag > fetchAndValidateTags (List <Long > tagIds ){
97112 // 태그 ID로 Tag 엔티티 조회
0 commit comments