forked from the-gigi/delinkcious
/
user_service.go
59 lines (49 loc) · 1.2 KB
/
user_service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package service
import (
"github.com/gorilla/mux"
"github.com/wrlou/delinkcious/pkg/db_util"
"log"
"net/http"
"os"
httptransport "github.com/go-kit/kit/transport/http"
sgm "github.com/wrlou/delinkcious/pkg/user_manager"
)
func Run() {
dbHost, dbPort, err := db_util.GetDbEndpoint("user")
if err != nil {
log.Fatal(err)
}
store, err := sgm.NewDbUserStore(dbHost, dbPort, "postgres", "postgres")
if err != nil {
log.Fatal(err)
}
port := os.Getenv("PORT")
if port == "" {
port = "7070"
}
svc, err := sgm.NewUserManager(store)
if err != nil {
log.Fatal(err)
}
registerHandler := httptransport.NewServer(
makeRegisterEndpoint(svc),
decodeRegisterRequest,
encodeResponse,
)
loginHandler := httptransport.NewServer(
makeLoginEndpoint(svc),
decodeLoginRequest,
encodeResponse,
)
logoutHandler := httptransport.NewServer(
makeLogoutEndpoint(svc),
decodeLogoutRequest,
encodeResponse,
)
r := mux.NewRouter()
r.Methods("POST").Path("/register").Handler(registerHandler)
r.Methods("POST").Path("/login").Handler(loginHandler)
r.Methods("POST").Path("/logout").Handler(logoutHandler)
log.Printf("Listening on port %s...\n", port)
log.Fatal(http.ListenAndServe(":"+port, r))
}