solution: access logging for GetBalance method

This commit is contained in:
Igor Artamonov
2021-06-28 18:41:08 -04:00
parent 0a3053d803
commit f2bc0f1d9b
3 changed files with 9 additions and 7 deletions

View File

@@ -38,7 +38,8 @@ class AccessHandler(
return when (val method = call.methodDescriptor.bareMethodName) {
"SubscribeHead" -> processSubscribeHead(call, headers, next)
"SubscribeBalance" -> processSubscribeBalance(call, headers, next)
"SubscribeBalance" -> processSubscribeBalance(call, headers, next, true)
"GetBalance" -> processSubscribeBalance(call, headers, next, false)
"NativeCall" -> processNativeCall(call, headers, next)
else -> {
log.trace("unsupported method `{}`", method)
@@ -67,9 +68,10 @@ class AccessHandler(
private fun <ReqT : Any, RespT : Any> processSubscribeBalance(
call: ServerCall<ReqT, RespT>,
headers: Metadata,
next: ServerCallHandler<ReqT, RespT>
next: ServerCallHandler<ReqT, RespT>,
subscribe: Boolean
): ServerCall.Listener<ReqT> {
val builder = EventsBuilder.SubscribeBalance()
val builder = EventsBuilder.SubscribeBalance(subscribe)
.start(headers, call.attributes)
val callWrapper: ServerCall<ReqT, RespT> = OnSubscribeBalanceResponse(
call as ServerCall<BlockchainOuterClass.BalanceRequest, BlockchainOuterClass.AddressBalance>, builder, accessLogWriter) as ServerCall<ReqT, RespT>

View File

@@ -48,14 +48,14 @@ class Events {
@JsonInclude(JsonInclude.Include.NON_NULL)
class SubscribeBalance(
blockchain: Chain, id: UUID,
blockchain: Chain, id: UUID, subscribe: Boolean,
// initial request details
val request: StreamRequestDetails,
val balanceRequest: BalanceRequest,
val addressBalance: AddressBalance,
// index of the current response
val index: Int
) : ChainBase(blockchain, "SubscribeBalance", id)
) : ChainBase(blockchain, if (subscribe) "SubscribeBalance" else "GetBalance", id)
@JsonInclude(JsonInclude.Include.NON_NULL)
class NativeCall(

View File

@@ -132,7 +132,7 @@ class EventsBuilder {
}
}
class SubscribeBalance() : Base<SubscribeBalance>() {
class SubscribeBalance(val subscribe: Boolean) : Base<SubscribeBalance>() {
private var index = 0
private var balanceRequest: Events.BalanceRequest? = null
@@ -155,7 +155,7 @@ class EventsBuilder {
val addressBalance = Events.AddressBalance(resp.asset.code, resp.address.address)
val chain = Chain.byId(resp.asset.chain.number)
return Events.SubscribeBalance(
chain, UUID.randomUUID(), requestDetails, balanceRequest!!, addressBalance, index++
chain, UUID.randomUUID(), subscribe, requestDetails, balanceRequest!!, addressBalance, index++
)
}
}