WIP add/remove peers from cli

This commit is contained in:
2024-10-07 16:29:11 +02:00
parent 2fefbe5e6c
commit af1319f1e5
4 changed files with 247 additions and 27 deletions

View File

@@ -24,6 +24,11 @@ type NamespaceService struct {
Service string
}
type NamespacePeer struct {
Namespace string
Peer string
}
func (t *Query) Generate(np *NamespaceService, reply *crypto.Password) error {
val, ok := StorageHandler.Namespaces[np.Namespace]
@@ -74,6 +79,55 @@ func (t *Query) Get(np *NamespaceService, reply *crypto.Password) error {
// return nil
//}
func (t *Query) GetPeerString(_ *int, result *string) error {
*result = StorageHandler.Host.ID().String() + "/" + StorageHandler.Key.Recipient().String()
return nil
}
func (t *Query) AddPeer(np *NamespacePeer, success *bool) error {
namespace := np.Namespace
val, ok := StorageHandler.Namespaces[namespace]
if !ok {
return fmt.Errorf("Namespace does not exist")
}
peer, err := storage.PeerFromString(np.Peer)
if err != nil {
fmt.Printf("Error parsing peer string: %s\n", err)
*success = false
return err
}
val.AddPeer(peer)
*success = true
StorageHandler.UpdateConfig()
return nil
}
func (t *Query) DeletePeer(np *NamespacePeer, success *bool) error {
namespace := np.Namespace
val, ok := StorageHandler.Namespaces[namespace]
if !ok {
return fmt.Errorf("Namespace does not exist")
}
peer, err := storage.PeerFromString(np.Peer)
if err != nil {
fmt.Printf("Error parsing peer string: %s\n", err)
*success = false
return err
}
val.RemovePeer(peer)
*success = true
StorageHandler.UpdateConfig()
return nil
}
func (t *Query) Delete(np *NamespaceService, success *bool) error {
namespace := np.Namespace
val, ok := StorageHandler.Namespaces[namespace]