-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* docs: ERD 설정 테이블에 name 컬럼 추가 * feat: 설정 링크 조회 API v2 구현 및 테스트 코드 작성
- Loading branch information
1 parent
f51e2d0
commit e3c8eb7
Showing
11 changed files
with
201 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
packy-api/src/main/java/com/dilly/admin/api/AdminV2Controller.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package com.dilly.admin.api; | ||
|
||
import com.dilly.admin.application.AdminV2Service; | ||
import com.dilly.admin.dto.response.SettingV2Response; | ||
import com.dilly.global.response.DataResponseDto; | ||
import io.swagger.v3.oas.annotations.Operation; | ||
import io.swagger.v3.oas.annotations.tags.Tag; | ||
import java.util.List; | ||
import lombok.RequiredArgsConstructor; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
import org.springframework.web.bind.annotation.RequestMapping; | ||
import org.springframework.web.bind.annotation.RestController; | ||
|
||
@Tag(name = "관리자 API") | ||
@RestController | ||
@RequestMapping("/api/v2/admin") | ||
@RequiredArgsConstructor | ||
public class AdminV2Controller { | ||
|
||
private final AdminV2Service adminV2Service; | ||
|
||
@Operation(summary = "설정 링크 조회") | ||
@GetMapping("/settings") | ||
public DataResponseDto<List<SettingV2Response>> getSettingUrls() { | ||
return DataResponseDto.from(adminV2Service.getSettingUrls()); | ||
} | ||
} |
25 changes: 25 additions & 0 deletions
25
packy-api/src/main/java/com/dilly/admin/application/AdminV2Service.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package com.dilly.admin.application; | ||
|
||
import com.dilly.admin.adaptor.SettingReader; | ||
import com.dilly.admin.domain.setting.Setting; | ||
import com.dilly.admin.dto.response.SettingV2Response; | ||
import java.util.List; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.extern.slf4j.Slf4j; | ||
import org.springframework.stereotype.Service; | ||
import org.springframework.transaction.annotation.Transactional; | ||
|
||
@Service | ||
@RequiredArgsConstructor | ||
@Transactional | ||
@Slf4j | ||
public class AdminV2Service { | ||
|
||
private final SettingReader settingReader; | ||
|
||
public List<SettingV2Response> getSettingUrls() { | ||
List<Setting> settingUrls = settingReader.findAll(); | ||
|
||
return settingUrls.stream().map(SettingV2Response::from).toList(); | ||
} | ||
} |
21 changes: 21 additions & 0 deletions
21
packy-api/src/main/java/com/dilly/admin/dto/response/SettingV2Response.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package com.dilly.admin.dto.response; | ||
|
||
import com.dilly.admin.domain.setting.Setting; | ||
import io.swagger.v3.oas.annotations.media.Schema; | ||
import lombok.Builder; | ||
|
||
@Builder | ||
public record SettingV2Response( | ||
@Schema(example = "패키 공식 SNS") | ||
String name, | ||
@Schema(example = "www.example.com") | ||
String url | ||
) { | ||
|
||
public static SettingV2Response from(Setting setting) { | ||
return SettingV2Response.builder() | ||
.name(setting.getName()) | ||
.url(setting.getUrl()) | ||
.build(); | ||
} | ||
} |
41 changes: 41 additions & 0 deletions
41
packy-api/src/test/java/com/dilly/admin/api/AdminV2ControllerTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package com.dilly.admin.api; | ||
|
||
import static org.hamcrest.Matchers.hasSize; | ||
import static org.mockito.BDDMockito.given; | ||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; | ||
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; | ||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; | ||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; | ||
|
||
import com.dilly.admin.dto.response.SettingV2Response; | ||
import com.dilly.global.ControllerTestSupport; | ||
import com.dilly.global.WithCustomMockUser; | ||
import java.util.List; | ||
import org.junit.jupiter.api.DisplayName; | ||
import org.junit.jupiter.api.Test; | ||
|
||
class AdminV2ControllerTest extends ControllerTestSupport { | ||
|
||
@DisplayName("설정 링크를 조회한다.") | ||
@Test | ||
@WithCustomMockUser | ||
void getSettingUrls() throws Exception { | ||
// given | ||
List<SettingV2Response> settingV2Responses = List.of( | ||
SettingV2Response.builder().name("테스트 1").url("www.test1.com").build(), | ||
SettingV2Response.builder().name("테스트 2").url("www.test2.com").build(), | ||
SettingV2Response.builder().name("테스트 3").url("www.test3.com").build() | ||
); | ||
|
||
given(adminV2Service.getSettingUrls()).willReturn(settingV2Responses); | ||
|
||
// when // then | ||
mockMvc.perform( | ||
get(baseUrlV2 + "/admin/settings") | ||
) | ||
.andDo(print()) | ||
.andExpect(status().isOk()) | ||
.andExpect(jsonPath("$.data").isArray()) | ||
.andExpect(jsonPath("$.data", hasSize(3))); | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
packy-api/src/test/java/com/dilly/admin/application/AdminV2ServiceTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package com.dilly.admin.application; | ||
|
||
import static org.assertj.core.api.Assertions.assertThat; | ||
|
||
import com.dilly.admin.dto.response.SettingV2Response; | ||
import com.dilly.global.IntegrationTestSupport; | ||
import java.util.List; | ||
import org.junit.jupiter.api.DisplayName; | ||
import org.junit.jupiter.api.Test; | ||
|
||
class AdminV2ServiceTest extends IntegrationTestSupport { | ||
|
||
@DisplayName("설정 링크를 조회한다.") | ||
@Test | ||
void getSettingUrls() { | ||
// given | ||
List<SettingV2Response> settingUrls = settingReader.findAll() | ||
.stream().map(SettingV2Response::from) | ||
.toList(); | ||
|
||
// when | ||
List<SettingV2Response> response = adminV2Service.getSettingUrls(); | ||
|
||
// then | ||
assertThat(response).isEqualTo(settingUrls); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
packy-flyway/src/main/resources/db/migration/V39__add_name_column_in_setting_table.sql
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
-- setting 테이블에 name 추가 | ||
alter table setting | ||
add column name varchar(255); | ||
|
||
-- 기존에 있던 설정 이름 추가 | ||
update setting set name = '패키 공식 SNS' where id = 1; | ||
update setting set name = '1:1 문의하기' where id = 2; | ||
update setting set name = '패키에게 의견 보내기' where id = 3; | ||
update setting set name = '이용약관' where id = 4; | ||
update setting set name = '개인정보처리방침' where id = 5; |
Submodule packy-submodule
updated
from f3bcdb to a5c16a