-
Notifications
You must be signed in to change notification settings - Fork 70
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
[Feat: 298] 2024년도의 컨트리뷰터 필터링 #305
Conversation
Test Results18 tests 18 ✅ 5s ⏱️ Results for commit 34cbacb. ♻️ This comment has been updated with latest results. |
의견 주셔서 감사합니다 가장 좋은 방법인 것 같습니다! 말씀주신 단점으로, 현재 수작업으로 가능한정도이고 ,추후 API Json 추출 도구를 만들어 어느정도 자동화를 할 수 있을 것 같습니다! |
2023 | ||
] | ||
} | ||
] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 결국 직접 다 뽑으셨군요. 감사합니다.
@@ -5,6 +5,7 @@ import kotlinx.serialization.Serializable | |||
|
|||
@Serializable | |||
internal data class ContributorResponse( | |||
val id: Long, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
동일하게 @SerialName
을 지정해주세요.
@Serializable | ||
data class ContributionYearResponse( | ||
val id: Long, | ||
val years: List<Int>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SerialName
을 지정해주는게 좋을것 같네요.
@@ -7,11 +7,17 @@ import javax.inject.Inject | |||
class GetContributorsUseCase @Inject constructor( | |||
private val repository: ContributorRepository, | |||
) { | |||
suspend operator fun invoke(): List<Contributor> { | |||
suspend operator fun invoke(year: Int = 2024): List<Contributor> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
매년 변경해야할 데이터로 보여서 기본값을 2024로 지정하는건 의미가 없을것 같네요.
2023 -> contributor.contributionYears.contains(year) | ||
else -> contributor.contributionYears.contains(year) | ||
|| contributor.contributionYears.isEmpty() | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
isEmpty()를 체크할 이유가 있을까요?
연도가 증가하면 이 부분 역시 지속 수정이 되어야 할것 같아보입니다.
현재 코드가 어떤 필터를 하는 것인지 이해가 어렵기도하구요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
계속 수정되어야 하는 건 분명 좋지 못한 것 같습니다!
로컬 json에 어떤 연도들이 있는지 확인하여, 마지막 해(올해)를 기준으로 기여자를 조회하도록 변경하였습니다!
따라서 파라미터 기본값 코멘트에서 함수 파라미터 또한 제거하였습니다!
Issue
Overview (Required)
안녕하세요! 좋은 기회 주셔서 감사합니다.
구현을 해보았으나, API 활용에 있어 어려운 점이 있어 좋은 방법이 있는지 궁금합니다!
현재 구현방식
Contributer의 이름을 가지고 Commit Api를 호출합니다
여기서 마지막 커밋 날짜(Author 기준)가 2024년이 넘어갔을 때 UI에 보여줄 리스트로 담았습니다.
구현의 문제점
Rate Limit 정책에 걸려, 시간내 60번 연속 호출시 IP 블로킹 당합니다..😂
생각한 해결 방안
우회적으로 구현한 것 같아 개인적으로 조금 아쉬운 방안입니다. 혹시 추가적인 개선 방법이나, 다른 좋은 방안이 있는지 궁금합니다..!
Ref API Link
Github Commits API
Github Contributor API
Update On 05/29 16:57
Json 파일에 연도별로 기여자를 분류하여 필터링 기능을 구현하였습니다!
Lastest Update
Usecase에서 필터 로직 구현