Skip to content

Commit 8b9ced3

Browse files
이소정이소정
이소정
authored and
이소정
committed
✨ feat: 상태별 공고 목록 조회 기능 개발
1 parent 456be60 commit 8b9ced3

File tree

4 files changed

+27
-2
lines changed

4 files changed

+27
-2
lines changed

http/test.http

+5-2
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,17 @@ Content-Type: application/json
4343
}
4444

4545
### 상세 조회
46-
GET http://localhost:8080/api/v1/announcements/2
46+
GET http://localhost:8080/api/v1/announcements/1
47+
48+
### 공고 상태별 목록 조회
49+
GET http://localhost:8080/api/v1/announcements/status?status=POSTED
4750

4851
### 삭제 (생성한 단체만 삭제 가능)
4952
DELETE http://localhost:8080/api/v1/announcements/1
5053
Authorization: Bearer {{matsterToken}}
5154

5255
### 공고 수정
53-
PATCH http://localhost:8080/api/v1/announcements/1
56+
PATCH http://localhost:8080/api/v1/announcements/2
5457
Authorization: Bearer {{matsterToken}}
5558
Content-Type: application/json
5659

src/main/java/com/sponus/sponusbe/domain/announcement/controller/AnnouncementController.java

+7
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.sponus.sponusbe.domain.announcement.dto.response.AnnouncementCreateResponse;
1919
import com.sponus.sponusbe.domain.announcement.dto.response.AnnouncementResponse;
2020
import com.sponus.sponusbe.domain.announcement.dto.response.AnnouncementUpdateResponse;
21+
import com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementStatus;
2122
import com.sponus.sponusbe.domain.announcement.service.AnnouncementQueryService;
2223
import com.sponus.sponusbe.domain.announcement.service.AnnouncementService;
2324
import com.sponus.sponusbe.domain.organization.entity.Organization;
@@ -51,6 +52,12 @@ public ApiResponse<AnnouncementResponse> getAnnouncement(@PathVariable Long anno
5152
return ApiResponse.onSuccess(announcementService.getAnnouncement(announcementId));
5253
}
5354

55+
@GetMapping("/status")
56+
public ApiResponse<List<AnnouncementResponse>> getListAnnouncement(
57+
@RequestParam("status") AnnouncementStatus status) {
58+
return ApiResponse.onSuccess(announcementService.getListAnnouncement(status));
59+
}
60+
5461
@GetMapping
5562
public ApiResponse<List<AnnouncementResponse>> searchAnnouncement(@RequestParam("search") String keyword) {
5663
return ApiResponse.onSuccess(announcementQueryService.searchAnnouncement(keyword));

src/main/java/com/sponus/sponusbe/domain/announcement/repository/AnnouncementRepository.java

+4
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,12 @@
55
import org.springframework.data.jpa.repository.JpaRepository;
66

77
import com.sponus.sponusbe.domain.announcement.entity.Announcement;
8+
import com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementStatus;
89

910
public interface AnnouncementRepository extends JpaRepository<Announcement, Long> {
1011

1112
List<Announcement> findByTitleContains(String title);
13+
14+
List<Announcement> findByStatus(AnnouncementStatus status);
15+
1216
}

src/main/java/com/sponus/sponusbe/domain/announcement/service/AnnouncementService.java

+11
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.sponus.sponusbe.domain.announcement.service;
22

3+
import java.util.List;
4+
import java.util.stream.Collectors;
5+
36
import org.springframework.stereotype.Service;
47
import org.springframework.transaction.annotation.Transactional;
58

@@ -9,6 +12,7 @@
912
import com.sponus.sponusbe.domain.announcement.dto.response.AnnouncementResponse;
1013
import com.sponus.sponusbe.domain.announcement.dto.response.AnnouncementUpdateResponse;
1114
import com.sponus.sponusbe.domain.announcement.entity.Announcement;
15+
import com.sponus.sponusbe.domain.announcement.entity.enums.AnnouncementStatus;
1216
import com.sponus.sponusbe.domain.announcement.exception.AnnouncementErrorCode;
1317
import com.sponus.sponusbe.domain.announcement.exception.AnnouncementException;
1418
import com.sponus.sponusbe.domain.announcement.repository.AnnouncementRepository;
@@ -39,6 +43,13 @@ public AnnouncementResponse getAnnouncement(Long announcementId) {
3943
return AnnouncementResponse.from(announcement);
4044
}
4145

46+
public List<AnnouncementResponse> getListAnnouncement(AnnouncementStatus status) {
47+
List<Announcement> announcements = announcementRepository.findByStatus(status);
48+
return announcements.stream()
49+
.map(AnnouncementResponse::from)
50+
.collect(Collectors.toList());
51+
}
52+
4253
public void deleteAnnouncement(Organization organization, Long announcementId) {
4354
final Announcement announcement = announcementRepository.findById(announcementId)
4455
.orElseThrow(() -> new AnnouncementException(AnnouncementErrorCode.ANNOUNCEMENT_NOT_FOUND));

0 commit comments

Comments
 (0)