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
 7	"github.com/vocdoni/dvote-relay/batch"
 8	"github.com/vocdoni/dvote-relay/data"
 9	"github.com/vocdoni/dvote-relay/types"
10)
11
12func Sub(topic string) error {
13	subscription := data.PsSubscribe(topic)
14	fmt.Println("Subscribed > " + topic)
15	var msg data.Record
16	var err error
17	for {
18		msg.Shell, err = subscription.Next()
19		if err != nil {
20			return err
21		}
22
23		payload := msg.Shell.Data
24
25		var e types.Envelope
26		var b types.Ballot
27
28		err = json.Unmarshal(payload, &e)
29		if err != nil {
30			return err
31		}
32
33		err = json.Unmarshal(e.Ballot, &b)
34		if err != nil {
35			return err
36		}
37
38		err = batch.Add(b)
39		if err != nil {
40			return err
41		}
42
43		fmt.Println("Got > " + string(payload))
44	}
45}