Merge pull request 'compilation fixed' (#230) from mntx-229 into main
Some checks failed
ci/woodpecker/push/billing_fees Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/bff Pipeline was successful
ci/woodpecker/push/discovery Pipeline was successful
ci/woodpecker/push/fx_ingestor Pipeline was successful
ci/woodpecker/push/fx_oracle Pipeline failed
ci/woodpecker/push/frontend Pipeline was successful
ci/woodpecker/push/gateway_mntx Pipeline failed
ci/woodpecker/push/gateway_chain Pipeline was successful
ci/woodpecker/push/gateway_tgsettle Pipeline was successful
ci/woodpecker/push/nats Pipeline was successful
ci/woodpecker/push/ledger Pipeline was successful
ci/woodpecker/push/notification Pipeline was successful
ci/woodpecker/push/payments_orchestrator Pipeline was successful

Reviewed-on: #230
This commit was merged in pull request #230.
This commit is contained in:
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/pkg/connector/params"
"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"
connectorv1 "github.com/tech/sendico/pkg/proto/connector/v1"
ledgerv1 "github.com/tech/sendico/pkg/proto/ledger/v1"
"google.golang.org/protobuf/types/known/structpb"
"google.golang.org/protobuf/types/known/timestamppb"
@@ -20,6 +20,7 @@ import (
const ledgerConnectorID = "ledger"
type connectorAdapter struct {
connectorv1.UnimplementedConnectorServiceServer
svc *Service
}
@@ -30,9 +31,9 @@ func newConnectorAdapter(svc *Service) *connectorAdapter {
func (c *connectorAdapter) GetCapabilities(_ context.Context, _ *connectorv1.GetCapabilitiesRequest) (*connectorv1.GetCapabilitiesResponse, error) {
return &connectorv1.GetCapabilitiesResponse{
Capabilities: &connectorv1.ConnectorCapabilities{
ConnectorType: ledgerConnectorID,
Version: appversion.Create().Short(),
SupportedAccountKinds: []connectorv1.AccountKind{connectorv1.AccountKind_LEDGER_ACCOUNT},
ConnectorType: ledgerConnectorID,
Version: appversion.Create().Short(),
SupportedAccountKinds: []connectorv1.AccountKind{connectorv1.AccountKind_LEDGER_ACCOUNT},
SupportedOperationTypes: []connectorv1.OperationType{
connectorv1.OperationType_CREDIT,
connectorv1.OperationType_DEBIT,
@@ -142,10 +143,10 @@ func (c *connectorAdapter) GetBalance(ctx context.Context, req *connectorv1.GetB
}
return &connectorv1.GetBalanceResponse{
Balance: &connectorv1.Balance{
AccountRef: req.GetAccountRef(),
Available: resp.GetBalance(),
CalculatedAt: resp.GetLastUpdated(),
PendingInbound: nil,
AccountRef: req.GetAccountRef(),
Available: resp.GetBalance(),
CalculatedAt: resp.GetLastUpdated(),
PendingInbound: nil,
PendingOutbound: 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
}
resp, err := c.svc.TransferInternal(ctx, &ledgerv1.TransferRequest{
IdempotencyKey: strings.TrimSpace(op.GetIdempotencyKey()),
OrganizationRef: orgRef,
FromLedgerAccountRef: fromID,
ToLedgerAccountRef: toID,
Money: op.GetMoney(),
Description: description,
Charges: charges,
Metadata: metadata,
EventTime: eventTime,
IdempotencyKey: strings.TrimSpace(op.GetIdempotencyKey()),
OrganizationRef: orgRef,
FromLedgerAccountRef: fromID,
ToLedgerAccountRef: toID,
Money: op.GetMoney(),
Description: description,
Charges: charges,
Metadata: metadata,
EventTime: eventTime,
})
if err != 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
}
resp, err := c.svc.ApplyFXWithCharges(ctx, &ledgerv1.FXRequest{
IdempotencyKey: strings.TrimSpace(op.GetIdempotencyKey()),
OrganizationRef: orgRef,
FromLedgerAccountRef: fromID,
ToLedgerAccountRef: toID,
FromMoney: op.GetMoney(),
ToMoney: toMoney,
Rate: strings.TrimSpace(reader.String("rate")),
Description: description,
Charges: charges,
Metadata: metadata,
EventTime: eventTime,
IdempotencyKey: strings.TrimSpace(op.GetIdempotencyKey()),
OrganizationRef: orgRef,
FromLedgerAccountRef: fromID,
ToLedgerAccountRef: toID,
FromMoney: op.GetMoney(),
ToMoney: toMoney,
Rate: strings.TrimSpace(reader.String("rate")),
Description: description,
Charges: charges,
Metadata: metadata,
EventTime: eventTime,
})
if err != 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
}
details, _ := structpb.NewStruct(map[string]interface{}{
"account_code": account.GetAccountCode(),
"account_type": account.GetAccountType().String(),
"status": account.GetStatus().String(),
"account_code": account.GetAccountCode(),
"account_type": account.GetAccountType().String(),
"status": account.GetStatus().String(),
"allow_negative": account.GetAllowNegative(),
"is_settlement": account.GetIsSettlement(),
"is_settlement": account.GetIsSettlement(),
})
return &connectorv1.Account{
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 {
err := &connectorv1.ConnectorError{
Code: code,
Message: strings.TrimSpace(message),
AccountId: strings.TrimSpace(accountID),
Code: code,
Message: strings.TrimSpace(message),
AccountId: strings.TrimSpace(accountID),
}
if op != nil {
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)
}
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) {
if !s.fees.available() {
return nil, nil