compilation fixed #230

Merged
tech merged 1 commits from mntx-229 into main 2026-01-05 01:52:23 +00:00
2 changed files with 36 additions and 42 deletions

View File

@@ -10,8 +10,8 @@ import (
"github.com/tech/sendico/ledger/internal/appversion" "github.com/tech/sendico/ledger/internal/appversion"
"github.com/tech/sendico/pkg/connector/params" "github.com/tech/sendico/pkg/connector/params"
"github.com/tech/sendico/pkg/merrors" "github.com/tech/sendico/pkg/merrors"
connectorv1 "github.com/tech/sendico/pkg/proto/connector/v1"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1" moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
connectorv1 "github.com/tech/sendico/pkg/proto/connector/v1"
ledgerv1 "github.com/tech/sendico/pkg/proto/ledger/v1" ledgerv1 "github.com/tech/sendico/pkg/proto/ledger/v1"
"google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/structpb"
"google.golang.org/protobuf/types/known/timestamppb" "google.golang.org/protobuf/types/known/timestamppb"
@@ -20,6 +20,7 @@ import (
const ledgerConnectorID = "ledger" const ledgerConnectorID = "ledger"
type connectorAdapter struct { type connectorAdapter struct {
connectorv1.UnimplementedConnectorServiceServer
svc *Service svc *Service
} }
@@ -30,9 +31,9 @@ func newConnectorAdapter(svc *Service) *connectorAdapter {
func (c *connectorAdapter) GetCapabilities(_ context.Context, _ *connectorv1.GetCapabilitiesRequest) (*connectorv1.GetCapabilitiesResponse, error) { func (c *connectorAdapter) GetCapabilities(_ context.Context, _ *connectorv1.GetCapabilitiesRequest) (*connectorv1.GetCapabilitiesResponse, error) {
return &connectorv1.GetCapabilitiesResponse{ return &connectorv1.GetCapabilitiesResponse{
Capabilities: &connectorv1.ConnectorCapabilities{ Capabilities: &connectorv1.ConnectorCapabilities{
ConnectorType: ledgerConnectorID, ConnectorType: ledgerConnectorID,
Version: appversion.Create().Short(), Version: appversion.Create().Short(),
SupportedAccountKinds: []connectorv1.AccountKind{connectorv1.AccountKind_LEDGER_ACCOUNT}, SupportedAccountKinds: []connectorv1.AccountKind{connectorv1.AccountKind_LEDGER_ACCOUNT},
SupportedOperationTypes: []connectorv1.OperationType{ SupportedOperationTypes: []connectorv1.OperationType{
connectorv1.OperationType_CREDIT, connectorv1.OperationType_CREDIT,
connectorv1.OperationType_DEBIT, connectorv1.OperationType_DEBIT,
@@ -142,10 +143,10 @@ func (c *connectorAdapter) GetBalance(ctx context.Context, req *connectorv1.GetB
} }
return &connectorv1.GetBalanceResponse{ return &connectorv1.GetBalanceResponse{
Balance: &connectorv1.Balance{ Balance: &connectorv1.Balance{
AccountRef: req.GetAccountRef(), AccountRef: req.GetAccountRef(),
Available: resp.GetBalance(), Available: resp.GetBalance(),
CalculatedAt: resp.GetLastUpdated(), CalculatedAt: resp.GetLastUpdated(),
PendingInbound: nil, PendingInbound: nil,
PendingOutbound: nil, PendingOutbound: nil,
}, },
}, nil }, nil
@@ -221,15 +222,15 @@ func (c *connectorAdapter) SubmitOperation(ctx context.Context, req *connectorv1
return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(connectorv1.ErrorCode_INVALID_PARAMS, "transfer: from.account and to.account are required", op, "")}}, nil return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(connectorv1.ErrorCode_INVALID_PARAMS, "transfer: from.account and to.account are required", op, "")}}, nil
} }
resp, err := c.svc.TransferInternal(ctx, &ledgerv1.TransferRequest{ resp, err := c.svc.TransferInternal(ctx, &ledgerv1.TransferRequest{
IdempotencyKey: strings.TrimSpace(op.GetIdempotencyKey()), IdempotencyKey: strings.TrimSpace(op.GetIdempotencyKey()),
OrganizationRef: orgRef, OrganizationRef: orgRef,
FromLedgerAccountRef: fromID, FromLedgerAccountRef: fromID,
ToLedgerAccountRef: toID, ToLedgerAccountRef: toID,
Money: op.GetMoney(), Money: op.GetMoney(),
Description: description, Description: description,
Charges: charges, Charges: charges,
Metadata: metadata, Metadata: metadata,
EventTime: eventTime, EventTime: eventTime,
}) })
if err != nil { if err != nil {
return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(mapErrorCode(err), err.Error(), op, "")}}, nil return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(mapErrorCode(err), err.Error(), op, "")}}, nil
@@ -246,17 +247,17 @@ func (c *connectorAdapter) SubmitOperation(ctx context.Context, req *connectorv1
return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(connectorv1.ErrorCode_INVALID_PARAMS, err.Error(), op, "")}}, nil return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(connectorv1.ErrorCode_INVALID_PARAMS, err.Error(), op, "")}}, nil
} }
resp, err := c.svc.ApplyFXWithCharges(ctx, &ledgerv1.FXRequest{ resp, err := c.svc.ApplyFXWithCharges(ctx, &ledgerv1.FXRequest{
IdempotencyKey: strings.TrimSpace(op.GetIdempotencyKey()), IdempotencyKey: strings.TrimSpace(op.GetIdempotencyKey()),
OrganizationRef: orgRef, OrganizationRef: orgRef,
FromLedgerAccountRef: fromID, FromLedgerAccountRef: fromID,
ToLedgerAccountRef: toID, ToLedgerAccountRef: toID,
FromMoney: op.GetMoney(), FromMoney: op.GetMoney(),
ToMoney: toMoney, ToMoney: toMoney,
Rate: strings.TrimSpace(reader.String("rate")), Rate: strings.TrimSpace(reader.String("rate")),
Description: description, Description: description,
Charges: charges, Charges: charges,
Metadata: metadata, Metadata: metadata,
EventTime: eventTime, EventTime: eventTime,
}) })
if err != nil { if err != nil {
return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(mapErrorCode(err), err.Error(), op, "")}}, nil return &connectorv1.SubmitOperationResponse{Receipt: &connectorv1.OperationReceipt{Error: connectorError(mapErrorCode(err), err.Error(), op, "")}}, nil
@@ -333,11 +334,11 @@ func ledgerAccountToConnector(account *ledgerv1.LedgerAccount) *connectorv1.Acco
return nil return nil
} }
details, _ := structpb.NewStruct(map[string]interface{}{ details, _ := structpb.NewStruct(map[string]interface{}{
"account_code": account.GetAccountCode(), "account_code": account.GetAccountCode(),
"account_type": account.GetAccountType().String(), "account_type": account.GetAccountType().String(),
"status": account.GetStatus().String(), "status": account.GetStatus().String(),
"allow_negative": account.GetAllowNegative(), "allow_negative": account.GetAllowNegative(),
"is_settlement": account.GetIsSettlement(), "is_settlement": account.GetIsSettlement(),
}) })
return &connectorv1.Account{ return &connectorv1.Account{
Ref: &connectorv1.AccountRef{ Ref: &connectorv1.AccountRef{
@@ -594,9 +595,9 @@ func mergeMetadata(base map[string]string, label, ownerRef, correlationID, paren
func connectorError(code connectorv1.ErrorCode, message string, op *connectorv1.Operation, accountID string) *connectorv1.ConnectorError { func connectorError(code connectorv1.ErrorCode, message string, op *connectorv1.Operation, accountID string) *connectorv1.ConnectorError {
err := &connectorv1.ConnectorError{ err := &connectorv1.ConnectorError{
Code: code, Code: code,
Message: strings.TrimSpace(message), Message: strings.TrimSpace(message),
AccountId: strings.TrimSpace(accountID), AccountId: strings.TrimSpace(accountID),
} }
if op != nil { if op != nil {
err.CorrelationId = strings.TrimSpace(op.GetCorrelationId()) err.CorrelationId = strings.TrimSpace(op.GetCorrelationId())

View File

@@ -236,13 +236,6 @@ func (s *Service) GetStatement(ctx context.Context, req *ledgerv1.GetStatementRe
return responder(ctx) return responder(ctx)
} }
func (s *Service) pingStorage(ctx context.Context) error {
if s.storage == nil {
return errStorageNotInitialized
}
return s.storage.Ping(ctx)
}
func (s *Service) quoteFeesForCredit(ctx context.Context, req *ledgerv1.PostCreditRequest) ([]*ledgerv1.PostingLine, error) { func (s *Service) quoteFeesForCredit(ctx context.Context, req *ledgerv1.PostCreditRequest) ([]*ledgerv1.PostingLine, error) {
if !s.fees.available() { if !s.fees.available() {
return nil, nil return nil, nil