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}