Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions errors/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,56 +27,56 @@ const (
)

var (
ErrClientNotFound = NewGatewaydError(
ErrClientNotFound = NewGatewayDError(
ErrCodeClientNotFound, "client not found", nil)
ErrClientNotConnected = NewGatewaydError(
ErrClientNotConnected = NewGatewayDError(
ErrCodeClientNotConnected, "client is not connected", nil)
ErrClientConnectionFailed = NewGatewaydError(
ErrClientConnectionFailed = NewGatewayDError(
ErrCodeClientConnectionFailed, "failed to create a new connection", nil)
ErrNetworkNotSupported = NewGatewaydError(
ErrNetworkNotSupported = NewGatewayDError(
ErrCodeNetworkNotSupported, "network is not supported", nil)
ErrResolveFailed = NewGatewaydError(
ErrResolveFailed = NewGatewayDError(
ErrCodeResolveFailed, "failed to resolve address", nil)
ErrPoolExhausted = NewGatewaydError(
ErrPoolExhausted = NewGatewayDError(
ErrCodePoolExhausted, "pool is exhausted", nil)
ErrFailedToStartServer = NewGatewaydError(
ErrFailedToStartServer = NewGatewayDError(
ErrCodeStartServerFailed, "failed to start server", nil)

ErrPluginNotFound = NewGatewaydError(
ErrPluginNotFound = NewGatewayDError(
ErrCodePluginNotFound, "plugin not found", nil)
ErrPluginNotReady = NewGatewaydError(
ErrPluginNotReady = NewGatewayDError(
ErrCodePluginNotReady, "plugin is not ready", nil)
ErrFailedToStartPlugin = NewGatewaydError(
ErrFailedToStartPlugin = NewGatewayDError(
ErrCodeStartPluginFailed, "failed to start plugin", nil)
ErrFailedToGetRPCClient = NewGatewaydError(
ErrFailedToGetRPCClient = NewGatewayDError(
ErrCodeGetRPCClientFailed, "failed to get RPC client", nil)
ErrFailedToDispensePlugin = NewGatewaydError(
ErrFailedToDispensePlugin = NewGatewayDError(
ErrCodeDispensePluginFailed, "failed to dispense plugin", nil)

ErrClientReceiveFailed = NewGatewaydError(
ErrClientReceiveFailed = NewGatewayDError(
ErrCodeClientReceiveFailed, "couldn't receive data from the server", nil)
ErrClientSendFailed = NewGatewaydError(
ErrClientSendFailed = NewGatewayDError(
ErrCodeClientSendFailed, "couldn't send data to the server", nil)

ErrServerSendFailed = NewGatewaydError(
ErrServerSendFailed = NewGatewayDError(
ErrCodeServerSendFailed, "couldn't send data to the client", nil)
ErrServerReceiveFailed = NewGatewaydError(
ErrServerReceiveFailed = NewGatewayDError(
ErrCodeServerReceiveFailed, "couldn't receive data from the client", nil)

ErrPutFailed = NewGatewaydError(
ErrPutFailed = NewGatewayDError(
ErrCodePutFailed, "failed to put in pool", nil)

ErrCastFailed = NewGatewaydError(
ErrCastFailed = NewGatewayDError(
ErrCodeCastFailed, "failed to cast", nil)

ErrHookVerificationFailed = NewGatewaydError(
ErrHookVerificationFailed = NewGatewayDError(
ErrCodeHookVerificationFailed, "failed to verify hook", nil)

ErrFileNotFound = NewGatewaydError(
ErrFileNotFound = NewGatewayDError(
ErrCodeFileNotFound, "file not found", nil)
ErrFileOpenFailed = NewGatewaydError(
ErrFileOpenFailed = NewGatewayDError(
ErrCodeFileOpenFailed, "failed to open file", nil)
ErrFileReadFailed = NewGatewaydError(
ErrFileReadFailed = NewGatewayDError(
ErrCodeFileReadFailed, "failed to read file", nil)
)

Expand Down
2 changes: 1 addition & 1 deletion errors/gatewayd_error.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ type GatewayDError struct {
OriginalError error
}

func NewGatewaydError(code ErrCode, message string, err error) *GatewayDError {
func NewGatewayDError(code ErrCode, message string, err error) *GatewayDError {
return &GatewayDError{
Code: code,
Message: message,
Expand Down
23 changes: 23 additions & 0 deletions errors/gatewayd_error_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package errors

import (
"errors"
"testing"

"github.com/stretchr/testify/assert"
)

func TestNewGatewayDError(t *testing.T) {
err := NewGatewayDError(ErrCodeUnknown, "test", nil)
assert.NotNil(t, err)
assert.Equal(t, err.Code, ErrCodeUnknown)
assert.Equal(t, err.Error(), "test")
assert.Equal(t, err.Message, "test")
assert.Nil(t, err.OriginalError)

origErr := errors.New("original error") //nolint:goerr113
assert.NotNil(t, err.Wrap(origErr))
assert.Equal(t, err.OriginalError, origErr)
assert.Equal(t, origErr, err.Unwrap())
assert.Equal(t, err.Error(), "test, OriginalError: original error")
}
9 changes: 9 additions & 0 deletions network/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ const (
DefaultSeed = 1000
)

type ClientInterface interface {
Send(data []byte) (int, *gerr.GatewayDError)
Receive() (int, []byte, *gerr.GatewayDError)
Close()
IsConnected() bool
}

type Client struct {
net.Conn

Expand All @@ -25,6 +32,8 @@ type Client struct {
// TODO: add read/write deadline and deal with timeouts
}

var _ ClientInterface = &Client{}

// TODO: implement a better connection management algorithm

func NewClient(network, address string, receiveBufferSize int, logger zerolog.Logger) *Client {
Expand Down