Fix /api/eth/v1/node/peers response.

This commit is contained in:
cheatfate 2021-04-04 10:23:36 +03:00 committed by zah
parent 55cbb82ab5
commit 23b2e663f1
3 changed files with 11 additions and 6 deletions

View File

@ -36,6 +36,16 @@ proc jsonResponse*(t: typedesc[RestApiResponse],
ok(ContentBody(contentType: "application/json",
data: stream.getOutput(seq[byte])))
proc jsonResponseWMeta*(t: typedesc[RestApiResponse],
data: auto, meta: auto): RestApiResponse =
var stream = memoryOutput()
var writer = JsonWriter[RestJson].init(stream)
writer.beginRecord()
writer.writeField("data", data)
writer.writeField("meta", meta)
writer.endRecord()
ok(ContentBody(contentType: "application/json",
data: stream.getOutput(seq[byte])))
proc jsonError*(t: typedesc[RestApiResponse], status: HttpCode = Http200,
msg: string = "", stacktrace: string = ""): RestApiResponse =

View File

@ -198,7 +198,7 @@ proc installNodeApiHandlers*(router: var RestRouter, node: BeaconNode) =
proto: item.info.protoVersion # part of specification.
)
res.add(peer)
return RestApiResponse.jsonResponse(res)
return RestApiResponse.jsonResponseWMeta(res, (count: uint64(len(res))))
router.api(MethodGet, "/api/eth/v1/node/peer_count") do () -> RestApiResponse:
var res: RestNodePeerCountTuple

View File

@ -391,11 +391,6 @@ proc decodeString*(t: typedesc[string],
value: string): Result[string, cstring] =
ok(value)
proc jsonResponse*(t: typedesc[RestApiResponse], j: JsonNode): RestApiResponse =
let data = %*{"data": j}
ok(ContentBody(contentType: "application/json",
data: cast[seq[byte]]($data)))
proc getRouter*(): RestRouter =
RestRouter.init(validate)