Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
64056cf
Membership v2 API (WiP)
AnthonyAkentiev Oct 26, 2024
d5a592a
mock generation
AnthonyAkentiev Oct 28, 2024
7ede337
membership v2: fix type
AnthonyAkentiev Oct 28, 2024
65b4dbd
Update
AnthonyAkentiev Oct 28, 2024
5b90944
Cont
AnthonyAkentiev Oct 29, 2024
86daa6d
Cont
AnthonyAkentiev Oct 30, 2024
fd7d60b
remove IsActive
AnthonyAkentiev Oct 30, 2024
0fd3e02
Cont
AnthonyAkentiev Nov 5, 2024
cf66fd5
Merge remote-tracking branch 'origin' into GO-4372-mv2
AnthonyAkentiev Dec 9, 2024
7bb3517
add ownerEthAddress to StoreCartProductAddRequest
AnthonyAkentiev Mar 25, 2025
357a822
payments: add StoreCartUpdate method
AnthonyAkentiev May 1, 2025
6290a29
Merge tag 'tags/v0.8.0' into GO-4372-mv2
AnthonyAkentiev May 23, 2025
9ae8a72
Merge branch 'main' into GO-4372-mv2
AnthonyAkentiev Jun 9, 2025
ad448bd
Merge branch 'main' into GO-4372-mv2
AnthonyAkentiev Jun 9, 2025
eabe5a5
Merge remote-tracking branch 'origin' into GO-4372-mv2
AnthonyAkentiev Jun 17, 2025
48a12e0
add remove parameter to Cart
AnthonyAkentiev Jul 1, 2025
cdfedcc
amount fix: uint32 -> int64
AnthonyAkentiev Jul 4, 2025
504d25d
AnyPaymentProcessing2 update
AnthonyAkentiev Jul 6, 2025
76e05d1
Web auth support
AnthonyAkentiev Jul 8, 2025
fe46c96
Merge remote-tracking branch 'origin/main' into GO-4372-mv2
AnthonyAkentiev Jul 8, 2025
6b6e807
remove SpaceID and Context
AnthonyAkentiev Jul 15, 2025
e0b7228
Merge remote-tracking branch 'origin' into GO-4372-mv2
AnthonyAkentiev Jul 15, 2025
518d840
pp protos: add isYearly
AnthonyAkentiev Jul 24, 2025
5185e82
Merge remote-tracking branch 'origin/main' into GO-4372-mv2
AnthonyAkentiev Sep 12, 2025
49809ba
paymentservice: regenerate protos
AnthonyAkentiev Sep 17, 2025
4030081
paymentservice2: fix build
AnthonyAkentiev Sep 17, 2025
5176b03
Merge remote-tracking branch 'origin' into GO-4372-mv2
AnthonyAkentiev Sep 17, 2025
f6fc266
update Membership2_Product
AnthonyAkentiev Sep 18, 2025
175d008
AnyPaymentProcessing2: remove unneeded methods, add GetProducts
AnthonyAkentiev Sep 18, 2025
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

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

104 changes: 104 additions & 0 deletions paymentservice/paymentserviceclient2/paymentserviceclient2.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
//go:generate mockgen -destination=mock/mock_paymentserviceclient2.go -package=mock_paymentserviceclient2 github.com/anyproto/any-sync/paymentservice/paymentserviceclient2 AnyPpClientService2
package paymentserviceclient2

import (
"context"
"errors"

"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/app/logger"
"github.com/anyproto/any-sync/net/pool"
"github.com/anyproto/any-sync/net/rpc/rpcerr"
"github.com/anyproto/any-sync/nodeconf"
"go.uber.org/zap"

pp "github.com/anyproto/any-sync/paymentservice/paymentserviceproto"
)

const CName = "any-pp.drpcclient2"

var log = logger.NewNamed(CName)

type AnyPpClientService2 interface {
GetProducts(ctx context.Context, in *pp.Membership2_GetProductsRequest) (out *pp.Membership2_GetProductsResponse, err error)

GetStatus(ctx context.Context, in *pp.Membership2_GetStatusRequest) (out *pp.Membership2_GetStatusResponse, err error)

WebAuth(ctx context.Context, in *pp.Membership2_WebAuthRequest) (out *pp.Membership2_WebAuthResponse, err error)
app.Component
}

type service struct {
pool pool.Pool
nodeconf nodeconf.Service
}

func (s *service) Init(a *app.App) (err error) {
s.pool = a.MustComponent(pool.CName).(pool.Pool)
s.nodeconf = a.MustComponent(nodeconf.CName).(nodeconf.Service)
return nil
}

func (s *service) Name() (name string) {
return CName
}

func New() AnyPpClientService2 {
return new(service)
}

func (s *service) doClient(ctx context.Context, fn func(cl pp.DRPCAnyPaymentProcessing2Client) error) error {
if len(s.nodeconf.PaymentProcessingNodePeers()) == 0 {
log.Error("no payment processing peers configured")
return errors.New("no paymentProcessingNode peers configured. Node config ID: " + s.nodeconf.Id())
}

// it will try to connect to the Payment Node
// please use "paymentProcessingNode" type of node in the config (in the network.nodes array)
peer, err := s.pool.GetOneOf(ctx, s.nodeconf.PaymentProcessingNodePeers())
if err != nil {
log.Error("failed to get a paymentnode peer. maybe you're on a custom network", zap.Error(err))
return err
}

log.Debug("trying to connect to paymentProcessingNode peer: ", zap.Any("peer", peer))

dc, err := peer.AcquireDrpcConn(ctx)
if err != nil {
log.Error("failed to acquire a DRPC connection to paymentnode", zap.Error(err))
return err
}
defer peer.ReleaseDrpcConn(ctx, dc)

return fn(pp.NewDRPCAnyPaymentProcessing2Client(dc))
}

func (s *service) GetProducts(ctx context.Context, in *pp.Membership2_GetProductsRequest) (out *pp.Membership2_GetProductsResponse, err error) {
err = s.doClient(ctx, func(cl pp.DRPCAnyPaymentProcessing2Client) error {
if out, err = cl.GetProducts(ctx, in); err != nil {
return rpcerr.Unwrap(err)
}
return nil
})
return
}

func (s *service) GetStatus(ctx context.Context, in *pp.Membership2_GetStatusRequest) (out *pp.Membership2_GetStatusResponse, err error) {
err = s.doClient(ctx, func(cl pp.DRPCAnyPaymentProcessing2Client) error {
if out, err = cl.GetStatus(ctx, in); err != nil {
return rpcerr.Unwrap(err)
}
return nil
})
return
}

func (s *service) WebAuth(ctx context.Context, in *pp.Membership2_WebAuthRequest) (out *pp.Membership2_WebAuthResponse, err error) {
err = s.doClient(ctx, func(cl pp.DRPCAnyPaymentProcessing2Client) error {
if out, err = cl.WebAuth(ctx, in); err != nil {
return rpcerr.Unwrap(err)
}
return nil
})
return
}
2 changes: 1 addition & 1 deletion paymentservice/paymentserviceproto/paymentservice.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading