Skip to content

Commit 40bc614

Browse files
committed
CLAP-285 Hotifx : 모든 카테고리 조회
<footer> - 관련: #331
1 parent 0e10e86 commit 40bc614

File tree

5 files changed

+78
-0
lines changed

5 files changed

+78
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package clap.server.adapter.inbound.web.admin;
2+
3+
import clap.server.adapter.inbound.web.dto.admin.response.FindAllDepartmentsResponse;
4+
import clap.server.application.mapper.DepartmentResponseMapper;
5+
import clap.server.application.port.inbound.admin.FindAllDepartmentsUsecase;
6+
import clap.server.common.annotation.architecture.WebAdapter;
7+
import io.swagger.v3.oas.annotations.Operation;
8+
import io.swagger.v3.oas.annotations.tags.Tag;
9+
import lombok.RequiredArgsConstructor;
10+
import org.springframework.security.access.annotation.Secured;
11+
import org.springframework.web.bind.annotation.GetMapping;
12+
import org.springframework.web.bind.annotation.RequestMapping;
13+
14+
import java.util.List;
15+
16+
@Tag(name = "05. Admin")
17+
@WebAdapter
18+
@RequiredArgsConstructor
19+
@RequestMapping("/api/managements")
20+
public class FindDepartmentController {
21+
private final FindAllDepartmentsUsecase findAllDepartmentsUsecase;
22+
23+
@Operation(summary = "부서 조회 API")
24+
@Secured("ROLE_ADMIN")
25+
@GetMapping("/departments")
26+
public List<FindAllDepartmentsResponse> findAllDepartments() {
27+
return findAllDepartmentsUsecase.findAllDepartments()
28+
.stream()
29+
.map(DepartmentResponseMapper::toFindAllDepartmentsResponse)
30+
.toList();
31+
}
32+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package clap.server.adapter.inbound.web.dto.admin.response;
2+
3+
public record FindAllDepartmentsResponse(
4+
Long departmentId,
5+
String name) {
6+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package clap.server.application.mapper;
2+
3+
import clap.server.adapter.inbound.web.dto.admin.response.FindAllDepartmentsResponse;
4+
import clap.server.domain.model.member.Department;
5+
6+
public class DepartmentResponseMapper {
7+
public static FindAllDepartmentsResponse toFindAllDepartmentsResponse(Department department) {
8+
return new FindAllDepartmentsResponse(department.getDepartmentId(), department.getName());
9+
}
10+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package clap.server.application.port.inbound.admin;
2+
3+
import clap.server.domain.model.member.Department;
4+
5+
import java.util.List;
6+
7+
public interface FindAllDepartmentsUsecase {
8+
List<Department> findAllDepartments();
9+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package clap.server.application.service.admin;
2+
3+
import clap.server.application.port.inbound.admin.FindAllDepartmentsUsecase;
4+
import clap.server.application.port.outbound.member.LoadDepartmentPort;
5+
import clap.server.common.annotation.architecture.ApplicationService;
6+
import clap.server.domain.model.member.Department;
7+
import lombok.RequiredArgsConstructor;
8+
9+
import java.util.List;
10+
11+
@ApplicationService
12+
@RequiredArgsConstructor
13+
public class FindAllDepartmentsService implements FindAllDepartmentsUsecase {
14+
private final LoadDepartmentPort loadDepartmentPort;
15+
16+
@Override
17+
public List<Department> findAllDepartments() {
18+
return loadDepartmentPort.findActiveDepartments();
19+
}
20+
21+
}

0 commit comments

Comments
 (0)