스팀 앱 개발기 #41 - condenser_api.get_dynamic_global_properties API 연동 코드 작성

in kr-dev 커뮤니티2 years ago (edited)

시작하며...

39회에서 condenser_api.get_dynamic_global_properties API 연동에 필요한 데이터 클래스들을 정의했었지요. 이번 포스트에서는 이 API를 연동하기 위한 코드를 작성해 보겠습니다.


SteemService 인터페이스에 API 연동 메소드 추가

SteemService 인터페이스에 condenser_api.get_accounts API를 실행하기 위한 메소드를 선언하였지요. 이번에는 condenser_api.get_dynamic_global_properties API를 실행하기 위한 메소드를 추가합니다. 코드는 다음과 같습니다.

interface SteemService {

    // ...

    @POST(".")
    fun getDynamicGlobalProperties(
        @Body params: GetDynamicGlobalPropertiesParamsDTO
    ): Single<GetDynamicGlobalPropertiesResponseDTO>

}

테스트 코드 작성

API 실행 후 받은 dynamic global properties에서 current_witness 값이 유효한지 검사하는 코드를 작성했습니다. 다른 자료들도 검증하는 코드를 만들어야 하는데, 그거까지는 못 했네요. 향후 리팩토링과 테스트 보완을 하는 시간을 갖도록 하겠습니다.


class SteemServiceTest {

    // ...

    @Test
    fun getDynamicGlobalProperties() {
        val params = GetDynamicGlobalPropertiesParamsDTO(
            params = arrayOf(),
            id = 1
        )

        SteemClient.apiService.getDynamicGlobalProperties(params).subscribe { responseDTO ->
            assertEquals("2.0", responseDTO.jsonrpc ?: "")
            assertNotNull(responseDTO.result)
            assertNotNull(responseDTO.result?.current_witness)
            assertTrue(responseDTO.result?.current_witness!!.isNotEmpty())
        }
    }

}

GitHub Commit


마치며...

예약 포스트 작성하고 5일만에 수정을 하네요. 틈내서 개발 포스트를 작성하려고 나름 노력을 하고 있지만, 시간에 자꾸 쫓기게 되네요. 어쩔 수 없는 거 같습니다. 속도가 조금 느리더라도 방향을 잃지 않고 꾸준히 갔으면 하는 작은 소망을 가져 봅니다.


지난 스팀 앱 개발기

Sort:  
 2 years ago 

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

Coin Marketplace

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