arnaucube
arnaucube/goRecommenderPublic Self-hosted repository
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}