goRecommender/serverRoutes.go
serverRoutes.goRaw
1package main
2
3import (
4 "encoding/json"
5 "fmt"
6 "net/http"
7
8 "github.com/gorilla/mux"
9)
10
11type Routes []Route
12
13var routes = Routes{
14 Route{
15 "Index",
16 "GET",
17 "/",
18 Index,
19 },
20 Route{
21 "Recommendations",
22 "GET",
23 "/r/{userid}/{nrec}",
24 Recommendations,
25 },
26 Route{
27 "NewUser",
28 "POST",
29 "/user",
30 NewUser,
31 },
32}
33
34//ROUTES
35
36func Index(w http.ResponseWriter, r *http.Request) {
37 fmt.Fprintln(w, "ask for recommendations in /r")
38}
39
40func NewUser(w http.ResponseWriter, r *http.Request) {
41 decoder := json.NewDecoder(r.Body)
42 var newUser UserModel
43 err := decoder.Decode(&newUser)
44 check(err)
45 defer r.Body.Close()
46
47 saveUser(userCollection, newUser)
48
49 fmt.Println(newUser)
50 fmt.Fprintln(w, "new user added: ", newUser.ID)
51}
52func Recommendations(w http.ResponseWriter, r *http.Request) {
53 vars := mux.Vars(r)
54 userid := vars["userid"]
55 nrec := vars["nrec"]
56 fmt.Println(userid)
57 fmt.Println(nrec)
58
59 //now, get recommendations
60
61 fmt.Fprintln(w, "recommendations")
62}