Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@ public class FeedReq {
@Schema(description = "피드 해시태그")
private List<String> hashTags;

@Schema(description = "공연 id")
@Schema(description = "공연 id (선택사항)", nullable = true)
private String performId;

// 프로필 사진도 받아야 함
}

Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class Feed extends TimeStamped {

// 공연
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "perform_id", nullable = false)
@JoinColumn(name = "perform_id", nullable = true)
private Perform perform;

// 피드 사진
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,12 @@ public FeedRes createFeed(FeedReq feedReq, Long userId) {
Profile profile = profileRepository.findByMemberId(userId)
.orElseThrow(() -> new ProfileException(ProfileErrorCode.PROFILE_NOT_FOUND));

Perform perform = performRepository.findByMt20id(feedReq.getPerformId())
.orElseThrow(() -> new PerformException(PerformErrorCode.PERFORM_NOT_FOUND));
// 공연 정보가 있을 경우 처리
Perform perform = null;
if (feedReq.getPerformId() != null) {
perform = performRepository.findByMt20id(feedReq.getPerformId())
.orElseThrow(() -> new PerformException(PerformErrorCode.PERFORM_NOT_FOUND));
}

// 2. Feed 생성
Feed feed = Feed.builder()
Expand Down Expand Up @@ -122,16 +126,17 @@ public FeedRes createFeed(FeedReq feedReq, Long userId) {
.commentCount(savedFeed.getCommentList().size())
.isLiked(false)
.relativeTime(getRelativeTime(savedFeed.getCreatedTime())) // 상대 시간 추가
.performName(perform.getPrfnm())
.startDate(perform.getPrfpdfrom())
.endDate(perform.getPrfpdto())
.genreName(perform.getGenrenm())
.performState(perform.getPrfstate())
.placeName(perform.getFcltynm())
.openRun(perform.getOpenrun())
.area(perform.getArea())
.poster(perform.getPoster())
.performLikeCount(perform.getWishCount())
.performId(perform != null ? perform.getMt20id() : null)
.performName(perform != null ? perform.getPrfnm() : null)
.startDate(perform != null ? perform.getPrfpdfrom() : null)
.endDate(perform != null ? perform.getPrfpdto() : null)
.genreName(perform != null ? perform.getGenrenm() : null)
.performState(perform != null ? perform.getPrfstate() : null)
.placeName(perform != null ? perform.getFcltynm() : null)
.openRun(perform != null ? perform.getOpenrun() : null)
.area(perform != null ? perform.getArea() : null)
.poster(perform != null ? perform.getPoster() : null)
.performLikeCount(perform != null ? perform.getWishCount() : null)
.build();
}

Expand All @@ -140,9 +145,12 @@ public FeedRes updateFeed(FeedReq feedReq, Long memberId,Long feedId) {
// 멤버 id로 프로필 찾기
Profile profile = profileRepository.findByMemberId(memberId)
.orElseThrow(() -> new ProfileException(ProfileErrorCode.PROFILE_NOT_FOUND));
//
Perform perform = performRepository.findByMt20id(feedReq.getPerformId())
.orElseThrow(() -> new PerformException(PerformErrorCode.PERFORM_NOT_FOUND));

Perform perform = null;
if (feedReq.getPerformId() != null) {
perform = performRepository.findByMt20id(feedReq.getPerformId())
.orElseThrow(() -> new PerformException(PerformErrorCode.PERFORM_NOT_FOUND));
}
// 2. 피드 조회 및 작성자 확인
Feed feed = feedRepository.findById(feedId)
.orElseThrow(() -> new FeedException(FeedErrorCode.FEED_NOT_FOUND));
Expand All @@ -151,8 +159,22 @@ public FeedRes updateFeed(FeedReq feedReq, Long memberId,Long feedId) {
throw new FeedException(FeedErrorCode.FEED_UPDATE_ACCESS_DENIED);
}

List<String> cdnFileUrls = new ArrayList<>();
for (String s3url : feedReq.getFileUrls()) {
String[] urls = s3url.split("/");
if (urls.length < 4) {
throw new FileUrlException(FileUrlErrorCode.WRONG_FILE_URL);
}
urls[2] = "cdn.hobiday.site";
String cdnUrl = "https://";
for (int i = 2; i < urls.length; i++) {
cdnUrl += urls[i] + "/";
}
cdnFileUrls.add(cdnUrl.substring(0, cdnUrl.length() - 1));
}

// 3. 피드 수정
feed.update(feedReq.getContent(), feedReq.getTopic(), feedReq.getFileUrls(), feedReq.getHashTags());
feed.update(feedReq.getContent(), feedReq.getTopic(), cdnFileUrls, feedReq.getHashTags());

// FeedRes 반환 (상대 시간 추가)
return FeedRes.builder()
Expand All @@ -171,17 +193,17 @@ public FeedRes updateFeed(FeedReq feedReq, Long memberId,Long feedId) {
.commentCount(feed.getCommentList().size())
.isLiked(false)
.relativeTime(getRelativeTime(feed.getCreatedTime())) // 상대 시간 추가
.performId(perform.getMt20id())
.performName(perform.getPrfnm())
.startDate(perform.getPrfpdfrom())
.endDate(perform.getPrfpdto())
.genreName(perform.getGenrenm())
.performState(perform.getPrfstate())
.placeName(perform.getFcltynm())
.openRun(perform.getOpenrun())
.area(perform.getArea())
.poster(perform.getPoster())
.performLikeCount(perform.getWishCount())
.performId(perform != null ? perform.getMt20id() : null)
.performName(perform != null ? perform.getPrfnm() : null)
.startDate(perform != null ? perform.getPrfpdfrom() : null)
.endDate(perform != null ? perform.getPrfpdto() : null)
.genreName(perform != null ? perform.getGenrenm() : null)
.performState(perform != null ? perform.getPrfstate() : null)
.placeName(perform != null ? perform.getFcltynm() : null)
.openRun(perform != null ? perform.getOpenrun() : null)
.area(perform != null ? perform.getArea() : null)
.poster(perform != null ? perform.getPoster() : null)
.performLikeCount(perform != null ? perform.getWishCount() : null)
.build();
}

Expand Down