-
Notifications
You must be signed in to change notification settings - Fork 1
[Feature/#50] 추천 루틴 API 연동 #51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 11 commits
Commits
Show all changes
59 commits
Select commit
Hold shift + click to select a range
86dc37c
Feat: 리플효과 제거 modifier 확장함수 정의
wjdrjs00 db583bf
Feat: 색상 추가 및 수정
wjdrjs00 55cd8e5
Feat: 리플효과 제거 modifier 확장함수 정의
wjdrjs00 b1ded46
Feat: 색상 추가 및 수정
wjdrjs00 bedd17e
Feat: BitnagilTextButton 공통 컴포넌트 추가
wjdrjs00 02e78eb
Feat: BitnagilSelectButton 공통 컴포넌트 추가
wjdrjs00 840f903
Feat: BitnagilIcon 공통 컴포넌트 추가
wjdrjs00 5db6ea8
Feat: BitnagilProgressBar 공통 컴포넌트 구현
wjdrjs00 f312261
Feat: BitnagilProgressTopBar 공통 컴포넌트 구현
wjdrjs00 c1b5fe9
Ui: 온보딩화면 공통컴포넌트 적용 및 ui 고도화
wjdrjs00 8047a3a
Ui: 아이콘 에셋 추가
wjdrjs00 4d1cbfe
Feat: BitnagilCheckBox 컴포넌트 추가
wjdrjs00 f06fbef
Merge branch 'ui/#45-common-component' of https://github.com/YAPP-Git…
wjdrjs00 d99c5e8
Feat: BitnagilOptionButton 공통 컴포넌트 추가
wjdrjs00 1ef8328
Ui: 마이페이지 및 설정 BitnagilOptionButton 컴포넌트 적용
wjdrjs00 906ea0e
Add: 해상도별 감정구슬 추가
wjdrjs00 be44f99
Feat: 감정 선택 화면 퍼브리싱 및 감정 아이콘 적용
wjdrjs00 dc53e98
Refactor: BitnagilIcon 컴포넌트 onClick 로직 제거
wjdrjs00 675f25c
Feat: 루틴 등록 화면 퍼블리싱
wjdrjs00 5df4bc0
Feat: BitnagilTopBar 공통 컴포넌트 추가
wjdrjs00 c965421
Feat: 약관동의 화면 퍼블리싱
wjdrjs00 c3b45c3
Feat: 추천루틴 화면 퍼블리싱
wjdrjs00 433f801
Feat: BitnagilFloatingButton 컴포넌트 추가
wjdrjs00 3044a5e
Feat: 쉐도우가 있는 감정구슬 컴포넌트 구현
wjdrjs00 33e01d6
Feat: 홈 화면 퍼블리싱
wjdrjs00 f5c77c8
Chore: ktlintFormat 적용
wjdrjs00 c5aea0f
Chore: clickable을 clickableWithoutRipple로 변경
wjdrjs00 ed0893d
Refactor: BitnagilOptionButton 컴포넌트 패딩 위치 변경
wjdrjs00 538e738
Chore: ktlintFormat 적용
wjdrjs00 30982d0
Feat: 추천 루틴 관련 응답 dto 모델 정의
wjdrjs00 c3c6f6c
Feat: 인트로 화면 캐릭터 그래픽 추가
wjdrjs00 9b61c0a
Feat: 온보딩 화면 캐릭터 그래픽 추가
wjdrjs00 f2900eb
Feat: BitnagilCheckBox 컴포저블 기능 추가
wjdrjs00 f3f1f14
Feat: BitnagilIconButton 컴포넌트 추가
wjdrjs00 78758dc
Feat: 추천 루틴 도메인 모델 정의
wjdrjs00 268ae06
Feat: dto -> domain 매핑 로직 추가
wjdrjs00 92b5515
Feat: 추천 루틴 조회 API 연동
wjdrjs00 902f368
Feat: 추천 루틴 UI 모델 및 매퍼 추가
wjdrjs00 e3771b7
Refactor: 추천루틴 도메인 모델 적용 및 관련 UI 로직 수정
wjdrjs00 9dac88f
Refactor: 추천 루틴 API 연동 및 ViewModel 로직 수정
wjdrjs00 11ecdba
Chore: ktlintFormat 적용
wjdrjs00 d2b73a4
Chore: 추천 루틴 설명 한 줄 초과 시 Ellipsis 처리
wjdrjs00 97cd2cb
Merge pull request #48 from YAPP-Github/ui/#45-common-component
wjdrjs00 b8dbc2c
Chore: ktlintFormat 적용
wjdrjs00 77a5a60
Fix: 추천 루틴 등록 시 루틴 id 타입 변경
wjdrjs00 01c02b6
Feat: 추천 루틴 관련 응답 dto 모델 정의
wjdrjs00 5751d46
Feat: 추천 루틴 도메인 모델 정의
wjdrjs00 31c555d
Feat: dto -> domain 매핑 로직 추가
wjdrjs00 378fa6b
Feat: 추천 루틴 조회 API 연동
wjdrjs00 f39cdd3
Feat: 추천 루틴 UI 모델 및 매퍼 추가
wjdrjs00 26b55d2
Refactor: 추천루틴 도메인 모델 적용 및 관련 UI 로직 수정
wjdrjs00 a15cdce
Refactor: 추천 루틴 API 연동 및 ViewModel 로직 수정
wjdrjs00 0e7a982
Chore: ktlintFormat 적용
wjdrjs00 3b8223b
Chore: 추천 루틴 설명 한 줄 초과 시 Ellipsis 처리
wjdrjs00 d8872c2
Chore: ktlintFormat 적용
wjdrjs00 443b720
Fix: 추천 루틴 등록 시 루틴 id 타입 변경
wjdrjs00 4d773ea
Chore: ktlintFormat 적용
wjdrjs00 1ed24bf
Merge branch 'feature/#50-recommend-routine-api' of https://github.co…
wjdrjs00 7d0f361
Chore: import문 제거
wjdrjs00 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 hidden or 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 hidden or 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
7 changes: 7 additions & 0 deletions
7
...java/com/threegap/bitnagil/data/recommendroutine/datasource/RecommendRoutineDataSource.kt
This file contains hidden or 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,7 @@ | ||
| package com.threegap.bitnagil.data.recommendroutine.datasource | ||
|
|
||
| import com.threegap.bitnagil.data.recommendroutine.model.response.RecommendRoutinesDto | ||
|
|
||
| interface RecommendRoutineDataSource { | ||
| suspend fun fetchRecommendRoutines(): Result<RecommendRoutinesDto> | ||
| } |
17 changes: 17 additions & 0 deletions
17
.../threegap/bitnagil/data/recommendroutine/datasourceImpl/RecommendRoutineDataSourceImpl.kt
This file contains hidden or 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,17 @@ | ||
| package com.threegap.bitnagil.data.recommendroutine.datasourceImpl | ||
|
|
||
| import com.threegap.bitnagil.data.common.safeApiCall | ||
| import com.threegap.bitnagil.data.recommendroutine.datasource.RecommendRoutineDataSource | ||
| import com.threegap.bitnagil.data.recommendroutine.model.response.RecommendRoutinesDto | ||
| import com.threegap.bitnagil.data.recommendroutine.service.RecommendRoutineService | ||
| import javax.inject.Inject | ||
|
|
||
| class RecommendRoutineDataSourceImpl @Inject constructor( | ||
| private val recommendRoutineService: RecommendRoutineService, | ||
| ) : RecommendRoutineDataSource { | ||
|
|
||
| override suspend fun fetchRecommendRoutines(): Result<RecommendRoutinesDto> = | ||
| safeApiCall { | ||
| recommendRoutineService.fetchRecommendRoutines() | ||
| } | ||
| } |
23 changes: 23 additions & 0 deletions
23
...n/java/com/threegap/bitnagil/data/recommendroutine/model/response/RecommendRoutinesDto.kt
This file contains hidden or 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,23 @@ | ||
| package com.threegap.bitnagil.data.recommendroutine.model.response | ||
|
|
||
| import com.threegap.bitnagil.domain.recommendroutine.model.EmotionMarbleType | ||
| import com.threegap.bitnagil.domain.recommendroutine.model.RecommendCategory | ||
| import com.threegap.bitnagil.domain.recommendroutine.model.RecommendRoutines | ||
| import kotlinx.serialization.SerialName | ||
| import kotlinx.serialization.Serializable | ||
|
|
||
| @Serializable | ||
| data class RecommendRoutinesDto( | ||
| @SerialName("recommendedRoutines") | ||
| val recommendedRoutinesByCategory: Map<String, List<RecommendedRoutineDto>>, | ||
| @SerialName("emotionMarbleType") | ||
| val emotionMarbleType: String?, | ||
| ) | ||
|
|
||
| fun RecommendRoutinesDto.toDomain(): RecommendRoutines = | ||
| RecommendRoutines( | ||
| recommendRoutinesByCategory = this.recommendedRoutinesByCategory.map { (categoryString, routines) -> | ||
| RecommendCategory.fromString(categoryString) to routines.map { it.toDomain() } | ||
| }.toMap(), | ||
| emotionMarbleType = this.emotionMarbleType?.let { EmotionMarbleType.valueOf(it) }, | ||
| ) | ||
32 changes: 32 additions & 0 deletions
32
.../java/com/threegap/bitnagil/data/recommendroutine/model/response/RecommendedRoutineDto.kt
This file contains hidden or 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,32 @@ | ||
| package com.threegap.bitnagil.data.recommendroutine.model.response | ||
|
|
||
| import com.threegap.bitnagil.domain.recommendroutine.model.RecommendLevel | ||
| import com.threegap.bitnagil.domain.recommendroutine.model.RecommendRoutine | ||
| import kotlinx.serialization.SerialName | ||
| import kotlinx.serialization.Serializable | ||
|
|
||
| @Serializable | ||
| data class RecommendedRoutineDto( | ||
| @SerialName("recommendedRoutineId") | ||
| val recommendedRoutineId: Int, | ||
| @SerialName("recommendedRoutineName") | ||
| val recommendedRoutineName: String, | ||
| @SerialName("recommendedRoutineDescription") | ||
| val recommendedRoutineDescription: String, | ||
| @SerialName("recommendedRoutineLevel") | ||
| val recommendedRoutineLevel: String, | ||
| @SerialName("executionTime") | ||
| val executionTime: String, | ||
| @SerialName("recommendedSubRoutineSearchResult") | ||
| val recommendedSubRoutineSearchResult: List<RecommendedSubRoutineDto>, | ||
| ) | ||
|
|
||
| fun RecommendedRoutineDto.toDomain(): RecommendRoutine = | ||
| RecommendRoutine( | ||
| id = recommendedRoutineId, | ||
| name = recommendedRoutineName, | ||
| description = recommendedRoutineDescription, | ||
| level = RecommendLevel.fromString(recommendedRoutineLevel), | ||
| executionTime = executionTime, | ||
| recommendSubRoutines = recommendedSubRoutineSearchResult.map { it.toDomain() }, | ||
| ) | ||
|
wjdrjs00 marked this conversation as resolved.
|
||
19 changes: 19 additions & 0 deletions
19
...va/com/threegap/bitnagil/data/recommendroutine/model/response/RecommendedSubRoutineDto.kt
This file contains hidden or 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,19 @@ | ||
| package com.threegap.bitnagil.data.recommendroutine.model.response | ||
|
|
||
| import com.threegap.bitnagil.domain.recommendroutine.model.RecommendSubRoutine | ||
| import kotlinx.serialization.SerialName | ||
| import kotlinx.serialization.Serializable | ||
|
|
||
| @Serializable | ||
| data class RecommendedSubRoutineDto( | ||
| @SerialName("recommendedSubRoutineId") | ||
| val recommendedSubRoutineId: Int, | ||
| @SerialName("recommendedSubRoutineName") | ||
| val recommendedSubRoutineName: String, | ||
| ) | ||
|
|
||
| fun RecommendedSubRoutineDto.toDomain(): RecommendSubRoutine = | ||
| RecommendSubRoutine( | ||
| id = recommendedSubRoutineId, | ||
| name = recommendedSubRoutineName, | ||
| ) |
15 changes: 15 additions & 0 deletions
15
.../threegap/bitnagil/data/recommendroutine/repositoryImpl/RecommendRoutineRepositoryImpl.kt
This file contains hidden or 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,15 @@ | ||
| package com.threegap.bitnagil.data.recommendroutine.repositoryImpl | ||
|
|
||
| import com.threegap.bitnagil.data.recommendroutine.datasource.RecommendRoutineDataSource | ||
| import com.threegap.bitnagil.data.recommendroutine.model.response.toDomain | ||
| import com.threegap.bitnagil.domain.recommendroutine.model.RecommendRoutines | ||
| import com.threegap.bitnagil.domain.recommendroutine.repository.RecommendRoutineRepository | ||
| import javax.inject.Inject | ||
|
|
||
| class RecommendRoutineRepositoryImpl @Inject constructor( | ||
| private val recommendRoutineDataSource: RecommendRoutineDataSource, | ||
| ) : RecommendRoutineRepository { | ||
| override suspend fun fetchRecommendRoutines(): Result<RecommendRoutines> = | ||
| recommendRoutineDataSource.fetchRecommendRoutines() | ||
| .map { it.toDomain() } | ||
| } |
10 changes: 10 additions & 0 deletions
10
.../main/java/com/threegap/bitnagil/data/recommendroutine/service/RecommendRoutineService.kt
This file contains hidden or 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 @@ | ||
| package com.threegap.bitnagil.data.recommendroutine.service | ||
|
|
||
| import com.threegap.bitnagil.data.recommendroutine.model.response.RecommendRoutinesDto | ||
| import com.threegap.bitnagil.network.model.BaseResponse | ||
| import retrofit2.http.GET | ||
|
|
||
| interface RecommendRoutineService { | ||
| @GET("/api/v1/recommend-routines") | ||
| suspend fun fetchRecommendRoutines(): BaseResponse<RecommendRoutinesDto> | ||
| } |
10 changes: 10 additions & 0 deletions
10
...in/src/main/java/com/threegap/bitnagil/domain/recommendroutine/model/EmotionMarbleType.kt
This file contains hidden or 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 @@ | ||
| package com.threegap.bitnagil.domain.recommendroutine.model | ||
|
|
||
| enum class EmotionMarbleType { | ||
| CALM, | ||
| VITALITY, | ||
| LETHARGY, | ||
| ANXIETY, | ||
| SATISFACTION, | ||
| FATIGUE, | ||
| } |
22 changes: 22 additions & 0 deletions
22
...in/src/main/java/com/threegap/bitnagil/domain/recommendroutine/model/RecommendCategory.kt
This file contains hidden or 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,22 @@ | ||
| package com.threegap.bitnagil.domain.recommendroutine.model | ||
|
|
||
| enum class RecommendCategory( | ||
| val categoryName: String, | ||
| val displayName: String, | ||
| val isVisible: Boolean = true, | ||
| ) { | ||
| PERSONALIZED("PERSONALIZED", "맞춤 추천"), | ||
| OUTING("OUTING", "나가봐요"), | ||
| WAKE_UP("WAKE_UP", "일어나요"), | ||
| CONNECT("CONNECT", "연결해요"), | ||
| REST("REST", "쉬어가요"), | ||
| GROW("GROW", "성장해요"), | ||
| OUTING_REPORT("OUTING_REPORT", "신고", isVisible = false), | ||
| UNKNOWN("UNKNOWN", "알 수 없음", isVisible = false), | ||
| ; | ||
|
|
||
| companion object { | ||
| fun fromString(categoryName: String): RecommendCategory = | ||
| entries.find { it.categoryName == categoryName } ?: UNKNOWN | ||
| } | ||
| } |
16 changes: 16 additions & 0 deletions
16
domain/src/main/java/com/threegap/bitnagil/domain/recommendroutine/model/RecommendLevel.kt
This file contains hidden or 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,16 @@ | ||
| package com.threegap.bitnagil.domain.recommendroutine.model | ||
|
|
||
| enum class RecommendLevel( | ||
| val level: String, | ||
| val displayName: String, | ||
| ) { | ||
| LEVEL1("LEVEL1", "가볍게 할 수 있어요"), | ||
| LEVEL2("LEVEL2", "조금 신경써서 할 수 있어요"), | ||
| LEVEL3("LEVEL3", "의지를 다 잡고 할 수 있어요"), | ||
| ; | ||
|
|
||
| companion object { | ||
| fun fromString(levelName: String): RecommendLevel = | ||
| entries.find { it.level == levelName } ?: LEVEL1 | ||
| } | ||
| } |
10 changes: 10 additions & 0 deletions
10
domain/src/main/java/com/threegap/bitnagil/domain/recommendroutine/model/RecommendRoutine.kt
This file contains hidden or 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 @@ | ||
| package com.threegap.bitnagil.domain.recommendroutine.model | ||
|
|
||
| data class RecommendRoutine( | ||
| val id: Int, | ||
| val name: String, | ||
| val description: String, | ||
| val level: RecommendLevel, | ||
| val executionTime: String, | ||
| val recommendSubRoutines: List<RecommendSubRoutine>, | ||
| ) |
6 changes: 6 additions & 0 deletions
6
...in/src/main/java/com/threegap/bitnagil/domain/recommendroutine/model/RecommendRoutines.kt
This file contains hidden or 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,6 @@ | ||
| package com.threegap.bitnagil.domain.recommendroutine.model | ||
|
|
||
| data class RecommendRoutines( | ||
| val recommendRoutinesByCategory: Map<RecommendCategory, List<RecommendRoutine>>, | ||
| val emotionMarbleType: EmotionMarbleType?, | ||
| ) |
6 changes: 6 additions & 0 deletions
6
.../src/main/java/com/threegap/bitnagil/domain/recommendroutine/model/RecommendSubRoutine.kt
This file contains hidden or 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,6 @@ | ||
| package com.threegap.bitnagil.domain.recommendroutine.model | ||
|
|
||
| data class RecommendSubRoutine( | ||
| val id: Int, | ||
| val name: String, | ||
| ) |
7 changes: 7 additions & 0 deletions
7
...va/com/threegap/bitnagil/domain/recommendroutine/repository/RecommendRoutineRepository.kt
This file contains hidden or 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,7 @@ | ||
| package com.threegap.bitnagil.domain.recommendroutine.repository | ||
|
|
||
| import com.threegap.bitnagil.domain.recommendroutine.model.RecommendRoutines | ||
|
|
||
| interface RecommendRoutineRepository { | ||
| suspend fun fetchRecommendRoutines(): Result<RecommendRoutines> | ||
| } |
12 changes: 12 additions & 0 deletions
12
...va/com/threegap/bitnagil/domain/recommendroutine/usecase/FetchRecommendRoutinesUseCase.kt
This file contains hidden or 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,12 @@ | ||
| package com.threegap.bitnagil.domain.recommendroutine.usecase | ||
|
|
||
| import com.threegap.bitnagil.domain.recommendroutine.model.RecommendRoutines | ||
| import com.threegap.bitnagil.domain.recommendroutine.repository.RecommendRoutineRepository | ||
| import javax.inject.Inject | ||
|
|
||
| class FetchRecommendRoutinesUseCase @Inject constructor( | ||
| private val recommendRoutineRepository: RecommendRoutineRepository, | ||
| ) { | ||
| suspend operator fun invoke(): Result<RecommendRoutines> = | ||
| recommendRoutineRepository.fetchRecommendRoutines() | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.