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}