From 73f36c64b497b01bf059103b636ef21fe2b6b34f Mon Sep 17 00:00:00 2001 From: liangping <18786721@qq.com> Date: Thu, 11 Jan 2024 13:43:18 +0800 Subject: [PATCH] add client --- src/libs/client.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/libs/client.ts b/src/libs/client.ts index 2a823c7d..7006468e 100644 --- a/src/libs/client.ts +++ b/src/libs/client.ts @@ -20,12 +20,12 @@ export class BaseRestClient { this.endpoint = endpoint; this.registry = registry; } - async request(request: Request, args: Record, query = '') { + async request(request: Request, args: Record, query = '', adapter: (source: any) => T = undefined) { let url = `${request.url.startsWith("http")?'':this.endpoint}${request.url}${query}`; Object.keys(args).forEach((k) => { url = url.replace(`{${k}}`, args[k] || ''); }); - return fetchData(url, request.adapter); + return fetchData(url, adapter||request.adapter); } } @@ -161,7 +161,14 @@ export class CosmosRestClient extends BaseRestClient { return this.request(this.registry.gov_proposals_deposits, { proposal_id }); } async getGovProposalTally(proposal_id: string) { - return this.request(this.registry.gov_proposals_tally, { proposal_id }); + return this.request(this.registry.gov_proposals_tally, { proposal_id }, undefined, (source: any) => { + return {tally: { + yes: source.yes || source.yes_count, + abstain: source.abstain || source.abstain_count, + no: source.no || source.no_count, + no_with_veto: source.no_with_veto || source.no_with_veto_count, + }}; + }); } async getGovProposalVotes(proposal_id: string, page?: PageRequest) { if(!page) page = new PageRequest()