Skip to content

Commit

Permalink
change implementation struct name to client
Browse files Browse the repository at this point in the history
  • Loading branch information
felipemadero authored and StephenButtolph committed Nov 9, 2021
1 parent 02135b3 commit 861bc88
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 38 deletions.
22 changes: 11 additions & 11 deletions api/admin/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import (
)

// Interface compliance
var _ Client = (*clientImpl)(nil)
var _ Client = (*client)(nil)

// Client interface for the Avalanche Platform Info API Endpoint
type Client interface {
Expand All @@ -26,42 +26,42 @@ type Client interface {
}

// Client implementation for the Avalanche Platform Info API Endpoint
type clientImpl struct {
type client struct {
requester rpc.EndpointRequester
}

// NewClient returns a new Info API Client
func NewClient(uri string, requestTimeout time.Duration) Client {
return &clientImpl{
return &client{
requester: rpc.NewEndpointRequester(uri, "/ext/admin", "admin", requestTimeout),
}
}

func (c *clientImpl) StartCPUProfiler() (bool, error) {
func (c *client) StartCPUProfiler() (bool, error) {
res := &api.SuccessResponse{}
err := c.requester.SendRequest("startCPUProfiler", struct{}{}, res)
return res.Success, err
}

func (c *clientImpl) StopCPUProfiler() (bool, error) {
func (c *client) StopCPUProfiler() (bool, error) {
res := &api.SuccessResponse{}
err := c.requester.SendRequest("stopCPUProfiler", struct{}{}, res)
return res.Success, err
}

func (c *clientImpl) MemoryProfile() (bool, error) {
func (c *client) MemoryProfile() (bool, error) {
res := &api.SuccessResponse{}
err := c.requester.SendRequest("memoryProfile", struct{}{}, res)
return res.Success, err
}

func (c *clientImpl) LockProfile() (bool, error) {
func (c *client) LockProfile() (bool, error) {
res := &api.SuccessResponse{}
err := c.requester.SendRequest("lockProfile", struct{}{}, res)
return res.Success, err
}

func (c *clientImpl) Alias(endpoint, alias string) (bool, error) {
func (c *client) Alias(endpoint, alias string) (bool, error) {
res := &api.SuccessResponse{}
err := c.requester.SendRequest("alias", &AliasArgs{
Endpoint: endpoint,
Expand All @@ -70,7 +70,7 @@ func (c *clientImpl) Alias(endpoint, alias string) (bool, error) {
return res.Success, err
}

func (c *clientImpl) AliasChain(chain, alias string) (bool, error) {
func (c *client) AliasChain(chain, alias string) (bool, error) {
res := &api.SuccessResponse{}
err := c.requester.SendRequest("aliasChain", &AliasChainArgs{
Chain: chain,
Expand All @@ -79,15 +79,15 @@ func (c *clientImpl) AliasChain(chain, alias string) (bool, error) {
return res.Success, err
}

func (c *clientImpl) GetChainAliases(chain string) ([]string, error) {
func (c *client) GetChainAliases(chain string) ([]string, error) {
res := &GetChainAliasesReply{}
err := c.requester.SendRequest("getChainAliases", &GetChainAliasesArgs{
Chain: chain,
}, res)
return res.Aliases, err
}

func (c *clientImpl) Stacktrace() (bool, error) {
func (c *client) Stacktrace() (bool, error) {
res := &api.SuccessResponse{}
err := c.requester.SendRequest("stacktrace", struct{}{}, res)
return res.Success, err
Expand Down
18 changes: 9 additions & 9 deletions api/admin/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func TestStartCPUProfiler(t *testing.T) {
tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := clientImpl{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
mockClient := client{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
success, err := mockClient.StartCPUProfiler()
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
Expand All @@ -90,7 +90,7 @@ func TestStopCPUProfiler(t *testing.T) {
tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := clientImpl{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
mockClient := client{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
success, err := mockClient.StopCPUProfiler()
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
Expand All @@ -109,7 +109,7 @@ func TestMemoryProfile(t *testing.T) {
tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := clientImpl{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
mockClient := client{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
success, err := mockClient.MemoryProfile()
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
Expand All @@ -128,7 +128,7 @@ func TestLockProfile(t *testing.T) {
tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := clientImpl{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
mockClient := client{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
success, err := mockClient.LockProfile()
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
Expand All @@ -147,7 +147,7 @@ func TestAlias(t *testing.T) {
tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := clientImpl{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
mockClient := client{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
success, err := mockClient.Alias("alias", "alias2")
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
Expand All @@ -166,7 +166,7 @@ func TestAliasChain(t *testing.T) {
tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := clientImpl{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
mockClient := client{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
success, err := mockClient.AliasChain("chain", "chain-alias")
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
Expand All @@ -184,7 +184,7 @@ func TestAliasChain(t *testing.T) {
func TestGetChainAliases(t *testing.T) {
t.Run("successful", func(t *testing.T) {
expectedReply := []string{"alias1", "alias2"}
mockClient := clientImpl{requester: NewMockClient(&GetChainAliasesReply{
mockClient := client{requester: NewMockClient(&GetChainAliasesReply{
Aliases: expectedReply,
}, nil)}

Expand All @@ -195,7 +195,7 @@ func TestGetChainAliases(t *testing.T) {
})

t.Run("failure", func(t *testing.T) {
mockClient := clientImpl{requester: NewMockClient(&GetChainAliasesReply{}, errors.New("some error"))}
mockClient := client{requester: NewMockClient(&GetChainAliasesReply{}, errors.New("some error"))}

_, err := mockClient.GetChainAliases("chain")

Expand All @@ -207,7 +207,7 @@ func TestStacktrace(t *testing.T) {
tests := GetSuccessResponseTests()

for _, test := range tests {
mockClient := clientImpl{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
mockClient := client{requester: NewMockClient(api.SuccessResponse{Success: test.Success}, test.Err)}
success, err := mockClient.Stacktrace()
// if there is error as expected, the test passes
if err != nil && test.Err != nil {
Expand Down
10 changes: 5 additions & 5 deletions api/health/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
var errInvalidNumberOfChecks = errors.New("expected at least 1 check attempt")

// Interface compliance
var _ Client = (*clientImpl)(nil)
var _ Client = (*client)(nil)

// Client interface for Avalanche Health API Endpoint
type Client interface {
Expand All @@ -22,7 +22,7 @@ type Client interface {
}

// Client implementation for Avalanche Health API Endpoint
type clientImpl struct {
type client struct {
requester rpc.EndpointRequester
}

Expand Down Expand Up @@ -53,21 +53,21 @@ type APIHealthClientReply struct {

// NewClient returns a client to interact with Health API endpoint
func NewClient(uri string, requestTimeout time.Duration) Client {
return &clientImpl{
return &client{
requester: rpc.NewEndpointRequester(uri, "/ext/health", "health", requestTimeout),
}
}

// Health returns a health check on the Avalanche node
func (c *clientImpl) Health() (*APIHealthClientReply, error) {
func (c *client) Health() (*APIHealthClientReply, error) {
res := &APIHealthClientReply{}
err := c.requester.SendRequest("health", struct{}{}, res)
return res, err
}

// AwaitHealthy queries the Health endpoint [checks] times, with a pause of
// [interval] in between checks and returns early if Health returns healthy
func (c *clientImpl) AwaitHealthy(checks int, interval time.Duration) (bool, error) {
func (c *client) AwaitHealthy(checks int, interval time.Duration) (bool, error) {
if checks < 1 {
return false, errInvalidNumberOfChecks
}
Expand Down
42 changes: 29 additions & 13 deletions api/info/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,71 +11,87 @@ import (
"github.com/ava-labs/avalanchego/utils/rpc"
)

// Client is an Info API Client
type Client struct {
// Interface compliance
var _ Client = (*client)(nil)

// Client interface for an Info API Client
type Client interface {
GetNodeVersion() (*GetNodeVersionReply, error)
GetNodeID() (string, error)
GetNodeIP() (string, error)
GetNetworkID() (uint32, error)
GetNetworkName() (string, error)
GetBlockchainID(alias string) (ids.ID, error)
Peers() ([]network.PeerID, error)
IsBootstrapped(string) (bool, error)
GetTxFee() (*GetTxFeeResponse, error)
}

// Client implementation for an Info API Client
type client struct {
requester rpc.EndpointRequester
}

// NewClient returns a new Info API Client
func NewClient(uri string, requestTimeout time.Duration) *Client {
return &Client{
func NewClient(uri string, requestTimeout time.Duration) Client {
return &client{
requester: rpc.NewEndpointRequester(uri, "/ext/info", "info", requestTimeout),
}
}

func (c *Client) GetNodeVersion() (*GetNodeVersionReply, error) {
func (c *client) GetNodeVersion() (*GetNodeVersionReply, error) {
res := &GetNodeVersionReply{}
err := c.requester.SendRequest("getNodeVersion", struct{}{}, res)
return res, err
}

func (c *Client) GetNodeID() (string, error) {
func (c *client) GetNodeID() (string, error) {
res := &GetNodeIDReply{}
err := c.requester.SendRequest("getNodeID", struct{}{}, res)
return res.NodeID, err
}

func (c *Client) GetNodeIP() (string, error) {
func (c *client) GetNodeIP() (string, error) {
res := &GetNodeIPReply{}
err := c.requester.SendRequest("getNodeIP", struct{}{}, res)
return res.IP, err
}

func (c *Client) GetNetworkID() (uint32, error) {
func (c *client) GetNetworkID() (uint32, error) {
res := &GetNetworkIDReply{}
err := c.requester.SendRequest("getNetworkID", struct{}{}, res)
return uint32(res.NetworkID), err
}

func (c *Client) GetNetworkName() (string, error) {
func (c *client) GetNetworkName() (string, error) {
res := &GetNetworkNameReply{}
err := c.requester.SendRequest("getNetworkName", struct{}{}, res)
return res.NetworkName, err
}

func (c *Client) GetBlockchainID(alias string) (ids.ID, error) {
func (c *client) GetBlockchainID(alias string) (ids.ID, error) {
res := &GetBlockchainIDReply{}
err := c.requester.SendRequest("getBlockchainID", &GetBlockchainIDArgs{
Alias: alias,
}, res)
return res.BlockchainID, err
}

func (c *Client) Peers() ([]network.PeerID, error) {
func (c *client) Peers() ([]network.PeerID, error) {
res := &PeersReply{}
err := c.requester.SendRequest("peers", struct{}{}, res)
return res.Peers, err
}

func (c *Client) IsBootstrapped(chain string) (bool, error) {
func (c *client) IsBootstrapped(chain string) (bool, error) {
res := &IsBootstrappedResponse{}
err := c.requester.SendRequest("isBootstrapped", &IsBootstrappedArgs{
Chain: chain,
}, res)
return res.IsBootstrapped, err
}

func (c *Client) GetTxFee() (*GetTxFeeResponse, error) {
func (c *client) GetTxFee() (*GetTxFeeResponse, error) {
res := &GetTxFeeResponse{}
err := c.requester.SendRequest("getTxFee", struct{}{}, res)
return res, err
Expand Down

0 comments on commit 861bc88

Please sign in to comment.