-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
52 lines (44 loc) · 1.25 KB
/
main.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
package main
import (
"fmt"
"log"
"os"
"github.com/gin-gonic/gin"
"github.com/junpayment/oshiete/handlers"
"github.com/junpayment/oshiete/infrastructures"
"github.com/junpayment/oshiete/middlewares"
"github.com/junpayment/oshiete/services"
)
const (
GoogleProjectId = "GOOGLE_PROJECT_ID"
EsaApiKey = "ESA_API_KEY"
EsaTeam = "ESA_TEAM"
GinMode = "GIN_MODE"
)
func main() {
ginMode := os.Getenv(GinMode)
if ginMode != gin.ReleaseMode && ginMode != gin.DebugMode {
log.Fatalln(fmt.Errorf("invalid gin mode"))
}
gin.SetMode(ginMode)
dataStoreClient, err := infrastructures.NewDataStoreClient(os.Getenv(GoogleProjectId))
if err != nil {
log.Fatalln(fmt.Errorf(
`dataStoreClient, err := infrastructures.NewDataStoreClient(os.Getenv(GoogleProjectId)): %w`, err))
}
oshieteHandler := &handlers.Oshiete{
OshieteService: &services.Oshiete{
DataStoreClient: dataStoreClient,
EsaClient: infrastructures.NewEsaClient(os.Getenv(EsaApiKey), os.Getenv(EsaTeam)),
},
TempleteService: &services.Templete{},
}
r := gin.Default()
r.Use(middlewares.Auth)
r.Use(middlewares.Response)
r.POST("", oshieteHandler.Do)
err = r.Run(":8080")
if err != nil {
log.Fatalln(fmt.Errorf(`err = r.Run(":8080"): %w`, err))
}
}