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	"net/http"
 7	"time"
 8	"io"
 9	"github.com/vocdoni/dvote-relay/batch"
10	"github.com/vocdoni/dvote-relay/types"
11)
12
13func parse(rw http.ResponseWriter, request *http.Request) {
14	decoder := json.NewDecoder(request.Body)
15
16	var s Submission
17	err := decoder.Decode(&s)
18
19	if err != nil {
20		panic(err)
21	}
22
23	//check PoW
24	//check key
25	//decrypt
26	//check franchise
27	err = batch.add(p)
28	if err != nil {
29		return err
30	}
31
32	j, err := json.Marshal(s)
33	io.WriteString(rw, string(j))
34}
35
36func listen(port string) {
37	http.HandleFunc("/submit", parse)
38	//add waitgroup
39	go func() {
40		fmt.Println("serving on " + port)
41		err := http.ListenAndServe(":" + port, nil)
42		if err != nil {
43			panic("ListenAndServe: " + err.Error())
44		}
45	}()
46}