스팀 앱 개발기 #63 - bridge.get_ranked_posts API 관련 데이터 클래스 추가 수정steemCreated with Sketch.

시작하며...

bridge.get_ranked_posts API 연동에 필요한 데이터 클래스들을 정의하였는데요. 추가로 수정해야 할 점이 발견되어 이번 포스트에 기록 남겨 봅니다. 원래는 API 연동 코드를 보여드리고자 했는데, 부득이하게 한 회 더 미루게 되었어요.


작업 개요

  • PostItem 클래스에 permlink 필드 추가
  • PostItemDTO 클래스의 toPostItem() 메소드 수정
  • GetRankedPostParamsDTO 클래스 수정

PostItem 클래스에 permlink 필드 추가

PostItem 클래스에 permlink 필드를 추가하였습니다. PostItemDTO 클래스에 동일한 이름의 필드가 있구요. 이게 필요한 이유는 최초 포스트를 읽은 후 추가로 포스트를 읽기 위해 마지막 포스트의 계정과 permlink가 필요하기 때문입니다.

아래 코드와 같이 permlink를 PostItem 데이터 클래스의 맨 마지막 필드로 추가했습니다.

data class PostItem(
    val upvoteCount: Int,
    val downvoteCount: Int,
    val account: String,
    val reputation: Int
    val reputation: Int,
    val permlink: String
)

PostItemDTO 클래스의 toPostItem() 메소드 수정

toPostItem() 메소드에 PostItemDTO 클래스의 permlink 필드 값을 PostItem 객체 생성시 전달하게 했습니다. 아래 코드는 수정한 return 문입니다.

return PostItem(
    title ?: "",
    thumbnailURL,
    body ?: "",
    category ?: "",
    Converter.toLocalTimeFromUTCTime(created ?: ""),
    payout ?: 0f,
    upvoteCount,
    downvoteCount,
    author ?: "",
    author_reputation?.toInt() ?: 0,
    permlink ?: ""
)

GetRankedPostParamsDTO 클래스 수정

이번에는 부가적인 수정이구요. 코드의 가독성을 높이기 위해 수정했습니다. 작업 내용은 다음과 같습니다.

  • Params 클래스 이름을 InnerParams로 수정
  • InnerParams 클래스의 companion object에 DEFAULT_LIMIT 상수 정의
  • InnerParams 생성자의 limit 파라메터의 값을 20에서 DEFAULT_LIMIT로 변경

아래 GitHub Commit 링크에서 변경된 코드를 조회하실 수 있습니다.


GitHub Commit


마치며...

데이터 클래스를 완성하는 것도 생각보다 간단하지는 않다는 걸 이번에 경험하게 되었네요. API 연동 코드는 이미 작성하였으니 다음 포스트에서 이를 보여드릴 예정입니다.


지난 스팀 앱 개발기

Sort:  
 2 years ago 

[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.

Upvoted! Thank you for supporting witness @jswit.

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 57956.22
ETH 3126.99
USDT 1.00
SBD 2.45