Skip to content

Commit cbd300f

Browse files
authored
✨ feat: 조직 조회 기능 개발 (#65)
* ✨ feat: 조직 조회 기능 개발 * ✅ test: 조직 조회 request 구현
1 parent 065c258 commit cbd300f

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

http/test.http

+4
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,7 @@ Content-Type: application/json
119119
### 내 조직 삭제 [soft delete] (OrganizationStatus = INACTIVE)
120120
DELETE http://localhost:8080/api/v1/organizations/me
121121
Authorization: Bearer {{matsterToken}}
122+
123+
### 조직 조회
124+
GET http://localhost:8080/api/v1/organizations/1
125+
Authorization: Bearer {{matsterToken}}

src/main/java/com/sponus/sponusbe/domain/organization/controller/OrganizationController.java

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.springframework.web.bind.annotation.DeleteMapping;
44
import org.springframework.web.bind.annotation.GetMapping;
55
import org.springframework.web.bind.annotation.PatchMapping;
6+
import org.springframework.web.bind.annotation.PathVariable;
67
import org.springframework.web.bind.annotation.PostMapping;
78
import org.springframework.web.bind.annotation.RequestBody;
89
import org.springframework.web.bind.annotation.RequestMapping;
@@ -14,6 +15,7 @@
1415
import com.sponus.sponusbe.domain.organization.dto.OrganizationJoinResponse;
1516
import com.sponus.sponusbe.domain.organization.dto.OrganizationUpdateRequest;
1617
import com.sponus.sponusbe.domain.organization.entity.Organization;
18+
import com.sponus.sponusbe.domain.organization.service.OrganizationQueryService;
1719
import com.sponus.sponusbe.domain.organization.service.OrganizationService;
1820
import com.sponus.sponusbe.global.common.ApiResponse;
1921

@@ -26,6 +28,7 @@
2628
public class OrganizationController {
2729

2830
private final OrganizationService organizationService;
31+
private final OrganizationQueryService organizationQueryService;
2932

3033
@PostMapping("/join")
3134
public ApiResponse<OrganizationJoinResponse> join(@Valid @RequestBody OrganizationJoinRequest request) {
@@ -58,4 +61,9 @@ public ApiResponse<Void> deleteMyOrganization(@AuthOrganization Organization org
5861
organizationService.deactivateOrganization(organization.getId());
5962
return ApiResponse.onSuccess(null);
6063
}
64+
65+
@GetMapping("/{organizationId}")
66+
public ApiResponse<OrganizationDetailGetResponse> getOrganization(@PathVariable Long organizationId) {
67+
return ApiResponse.onSuccess(organizationQueryService.getOrganization(organizationId));
68+
}
6169
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.sponus.sponusbe.domain.organization.service;
2+
3+
import static com.sponus.sponusbe.domain.organization.exception.OrganizationErrorCode.*;
4+
5+
import org.springframework.stereotype.Service;
6+
import org.springframework.transaction.annotation.Transactional;
7+
8+
import com.sponus.sponusbe.domain.organization.dto.OrganizationDetailGetResponse;
9+
import com.sponus.sponusbe.domain.organization.entity.Organization;
10+
import com.sponus.sponusbe.domain.organization.exception.OrganizationException;
11+
import com.sponus.sponusbe.domain.organization.repository.OrganizationRepository;
12+
13+
import lombok.RequiredArgsConstructor;
14+
15+
@Transactional(readOnly = true)
16+
@RequiredArgsConstructor
17+
@Service
18+
public class OrganizationQueryService {
19+
private final OrganizationRepository organizationRepository;
20+
21+
public OrganizationDetailGetResponse getOrganization(Long organizationId) {
22+
Organization organization = organizationRepository.findById(organizationId)
23+
.orElseThrow(() -> new OrganizationException(ORGANIZATION_NOT_FOUND));
24+
25+
return OrganizationDetailGetResponse.from(organization);
26+
}
27+
}

0 commit comments

Comments
 (0)