goBlockchainDataAnalysis/serverRoutes.go
serverRoutes.goRaw
1package main
2
3import (
4 "encoding/json"
5 "fmt"
6 "net/http"
7)
8
9type Routes []Route
10
11var routes = Routes{
12 Route{
13 "Index",
14 "GET",
15 "/",
16 Index,
17 },
18 /* Route{
19 "Recommendations",
20 "GET",
21 "/r/{userid}/{nrec}",
22 Recommendations,
23 },
24 */
25 Route{
26 "NetworkMap",
27 "Get",
28 "/map",
29 NetworkMap,
30 },
31 /*
32 Route{
33 "SelectItem",
34 "GET",
35 "/selectItem/{userid}/{itemid}",
36 SelectItem,
37 },
38 */
39}
40
41//ROUTES
42
43func Index(w http.ResponseWriter, r *http.Request) {
44 fmt.Fprintln(w, "ask for recommendations in /r")
45}
46
47/*
48func NewUser(w http.ResponseWriter, r *http.Request) {
49 ipFilter(w, r)
50 decoder := json.NewDecoder(r.Body)
51 var newUser UserModel
52 err := decoder.Decode(&newUser)
53 check(err)
54 defer r.Body.Close()
55
56 saveUser(userCollection, newUser)
57
58 fmt.Println(newUser)
59 fmt.Fprintln(w, "new user added: ", newUser.ID)
60}
61*/
62func NetworkMap(w http.ResponseWriter, r *http.Request) {
63 ipFilter(w, r)
64
65 nodes, err := getAllNodes()
66 check(err)
67 edges, err := getAllEdges()
68 check(err)
69
70 var network NetworkModel
71 network.Nodes = nodes
72 network.Edges = edges
73
74 //convert []resp struct to json
75 jNetwork, err := json.Marshal(network)
76 check(err)
77
78 fmt.Fprintln(w, string(jNetwork))
79}
80
81/*
82func SelectItem(w http.ResponseWriter, r *http.Request) {
83 ipFilter(w, r)
84 vars := mux.Vars(r)
85 userid := vars["userid"]
86 itemid := vars["itemid"]
87 //find item
88 item, err := getItemById(itemid)
89 if err != nil {
90 fmt.Fprintln(w, "item "+itemid+" not found")
91 }
92
93 //find user
94 user, err := getUserById(userid)
95 if err != nil {
96 fmt.Fprintln(w, "user "+userid+" not found")
97 }
98
99 //increase TActed in item
100 item.TActed = item.TActed + 1
101
102 //save item
103 item, err = updateItem(item)
104 check(err)
105 fmt.Println(item)
106
107 //add item to []Actions of user
108 user.Actions = append(user.Actions, itemid)
109
110 //save user
111 user, err = updateUser(user)
112 check(err)
113 fmt.Println(user)
114
115 fmt.Fprintln(w, "user: "+userid+", selects item: "+itemid)
116}
117*/