You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
758 B

package net
import (
"encoding/json"
"fmt"
"github.com/vocdoni/dvote-relay/batch"
"github.com/vocdoni/dvote-relay/types"
"github.com/vocdoni/dvote-relay/data"
shell "github.com/ipfs/go-ipfs-api"
)
func Sub(topic string) error {
subscription := data.PsSubscribe(topic)
fmt.Println("Subscribed > " + topic)
var msg shell.PubSubRecord
var err error
for {
msg, err = subscription.Next()
if err != nil {
return err
}
payload := msg.Data()
var e types.Envelope
var b types.Ballot
err = json.Unmarshal(payload, &e)
if err != nil {
return err
}
err = json.Unmarshal(e.Ballot, &b)
if err != nil {
return err
}
err = batch.Add(b)
if err != nil {
return err
}
fmt.Println("Got > " + string(payload))
}
}