|
6 | 6 | import com.sponus.sponusbe.domain.announcement.dto.AnnouncementCreateRequest;
|
7 | 7 | import com.sponus.sponusbe.domain.announcement.dto.AnnouncementCreateResponse;
|
8 | 8 | import com.sponus.sponusbe.domain.announcement.dto.AnnouncementResponse;
|
| 9 | +import com.sponus.sponusbe.domain.announcement.dto.AnnouncementUpdateRequest; |
| 10 | +import com.sponus.sponusbe.domain.announcement.dto.AnnouncementUpdateResponse; |
9 | 11 | import com.sponus.sponusbe.domain.announcement.entity.Announcement;
|
10 | 12 | import com.sponus.sponusbe.domain.announcement.exception.AnnouncementErrorCode;
|
11 | 13 | import com.sponus.sponusbe.domain.announcement.exception.AnnouncementException;
|
@@ -46,4 +48,21 @@ public void deleteAnnouncement(Organization organization, Long announcementId) {
|
46 | 48 | announcementRepository.delete(announcement);
|
47 | 49 | }
|
48 | 50 |
|
| 51 | + public AnnouncementUpdateResponse updateAnnouncement(Organization authOrganization, Long proposeId, |
| 52 | + AnnouncementUpdateRequest request) { |
| 53 | + final Announcement announcement = announcementRepository.findById(proposeId) |
| 54 | + .orElseThrow(() -> new AnnouncementException(AnnouncementErrorCode.ANNOUNCEMENT_NOT_FOUND)); |
| 55 | + |
| 56 | + if (!isOrganizationsAnnouncement(authOrganization.getId(), announcement)) |
| 57 | + throw new AnnouncementException(AnnouncementErrorCode.INVALID_ORGANIZATION); |
| 58 | + |
| 59 | + announcement.update(request.title(), request.type(), request.category(), request.content()); |
| 60 | + announcementRepository.save(announcement); |
| 61 | + return AnnouncementUpdateResponse.from(announcement); |
| 62 | + } |
| 63 | + |
| 64 | + private boolean isOrganizationsAnnouncement(Long organizationId, Announcement announcement) { |
| 65 | + return announcement.getWriter().getId().equals(organizationId); |
| 66 | + } |
| 67 | + |
49 | 68 | }
|
0 commit comments