arnaucube
arnaucube/go-dvotePublic Self-hosted repository
go-dvote/net/net.go
net/net.goRaw
 1package net
 2
 3import (
 4	"encoding/json"
 5	"fmt"
 6	"github.com/vocdoni/dvote-relay/batch"
 7	"github.com/vocdoni/dvote-relay/types"
 8	"github.com/vocdoni/dvote-relay/data"
 9)
10
11
12func Sub(topic string) error {
13	subscription := data.PsSubscribe(topic)
14	fmt.Println("Subscribed > " + topic)
15	for {
16		msg, err := subscription.Next()
17		if err != nil {
18			return err
19		}
20
21		payload := msg.Data()
22
23		var e types.Envelope
24		var b types.Ballot
25
26		err = json.Unmarshal(payload, &e)
27		if err != nil {
28			return err
29		}
30
31		err = json.Unmarshal(e.Ballot, &b)
32		if err != nil {
33			return err
34		}
35
36		err = batch.Add(b)
37		if err != nil {
38			return err
39		}
40
41		fmt.Println("Got > " + string(payload))
42	}
43}