2022-12-03 13:09:15 +01:00

64 lines
1.0 KiB
Go

package peers
import (
"errors"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/app"
)
type PeerType int
const (
PeerTypeClient PeerType = iota
PeerTypeNode
)
const CName = "debug.peers"
var ErrNoSuchPeer = errors.New("no such peer")
type Service interface {
app.Component
Get(alias string) (Peer, error)
}
type Peer struct {
PeerType PeerType
Address string
}
type service struct {
peerMap map[string]Peer
}
func New() Service {
return &service{peerMap: map[string]Peer{}}
}
func (s *service) Init(a *app.App) (err error) {
s.peerMap["client1"] = Peer{
PeerType: PeerTypeClient,
Address: "127.0.0.1:8090",
}
s.peerMap["client2"] = Peer{
PeerType: PeerTypeClient,
Address: "127.0.0.1:8091",
}
s.peerMap["node1"] = Peer{
PeerType: PeerTypeNode,
Address: "127.0.0.1:8080",
}
return
}
func (s *service) Name() (name string) {
return CName
}
func (s *service) Get(alias string) (Peer, error) {
peer, ok := s.peerMap[alias]
if !ok {
return Peer{}, ErrNoSuchPeer
}
return peer, nil
}