-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathmain.go
More file actions
88 lines (61 loc) · 1.6 KB
/
main.go
File metadata and controls
88 lines (61 loc) · 1.6 KB
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package main
import (
"net/http"
"net/http/httputil"
"os"
proxy "github.com/codeshelldev/secured-signal-api/internals/proxy"
middlewares "github.com/codeshelldev/secured-signal-api/internals/proxy/middlewares"
config "github.com/codeshelldev/secured-signal-api/utils/config"
docker "github.com/codeshelldev/secured-signal-api/utils/docker"
log "github.com/codeshelldev/secured-signal-api/utils/logger"
)
var proxy_last *httputil.ReverseProxy
var ENV *config.ENV_
func main() {
logLevel := os.Getenv("LOG_LEVEL")
log.Init(logLevel)
docker.Init()
config.Load()
ENV = config.ENV
if ENV.LOG_LEVEL != log.Level() {
log.Init(ENV.LOG_LEVEL)
}
log.Info("Initialized Logger with Level of ", log.Level())
proxy_last = proxy.Create(ENV.API_URL)
mesg_m6 := middlewares.MessageMiddleware{
Next: proxy_last,
}
alias_m5 := middlewares.AliasMiddleware{
Next: mesg_m6.Use(),
}
temp_m4 := middlewares.TemplateMiddleware{
Next: alias_m5.Use(),
}
endp_m3 := middlewares.EndpointsMiddleware{
Next: temp_m4.Use(),
}
auth_m2 := middlewares.AuthMiddleware{
Next: endp_m3.Use(),
}
serv_m1 := middlewares.ServeMiddleware{
Next: auth_m2.Use(),
}
log_m0 := middlewares.LogMiddleware{
Next: serv_m1.Use(),
}
log.Info("Initialized Middlewares")
addr := "0.0.0.0:" + ENV.PORT
log.Info("Server Listening on ", addr)
server := &http.Server{
Addr: addr,
Handler: log_m0.Use(),
}
stop := docker.Run(func(){
err := server.ListenAndServe()
if err != nil && err != http.ErrServerClosed {
log.Fatal("Server error: ", err.Error())
}
})
<-stop
docker.Shutdown(server)
}