-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
78 lines (66 loc) · 1.83 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
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
package main
import (
"net/http"
"os"
"strings"
"github.com/labstack/echo"
"github.com/labstack/echo/middleware"
"go.mongodb.org/mongo-driver/mongo"
"github.com/bbkbbbk/sapo/line"
pkgMongo "github.com/bbkbbbk/sapo/pkg/mongo"
"github.com/bbkbbbk/sapo/server"
"github.com/bbkbbbk/sapo/spotify"
)
var (
basedURL string
db *mongo.Database
lineService line.Service
richMenu line.RichMenuMetadata
spotifyService spotify.Service
)
func init() {
basedURL = os.Getenv("BASED_URL_APP")
}
func init() {
db = pkgMongo.NewMongo(pkgMongo.Config{
AuthSource: os.Getenv("MONGO_AUTH_SOURCE"),
Database: os.Getenv("MONGO_DATABASE"),
Host: os.Getenv("MONGO_HOST"),
Username: os.Getenv("MONGO_USERNAME"),
Password: os.Getenv("MONGO_PASSWORD"),
})
}
func init() {
richMenu = line.RichMenuMetadata{
Login: os.Getenv("RICH_MENU_LOGIN"),
Default: os.Getenv("RICH_MENU_DEFAULT"),
}
}
func init() {
lineService = line.NewLINEService(
os.Getenv("CHANNEL_SECRET"),
os.Getenv("CHANNEL_TOKEN"),
richMenu,
)
}
func init() {
spotifyService = spotify.NewSpotifyService(
os.Getenv("MY_CLIENT_ID"),
os.Getenv("MY_CLIENT_SECRET"),
basedURL,
)
}
func main() {
e := echo.New()
e.Use(middleware.CORSWithConfig(middleware.CORSConfig{
AllowOrigins: strings.Split(os.Getenv("CORS_ALLOW_ORIGIN"), ","),
AllowHeaders: []string{echo.HeaderOrigin, echo.HeaderContentType, echo.HeaderAccept},
AllowMethods: []string{http.MethodOptions, http.MethodGet, http.MethodPost, http.MethodPut},
}))
repository := server.NewRepository(db)
service := server.NewService(basedURL, lineService, spotifyService, repository)
serverHandler := server.NewHandler(service, os.Getenv("LIFF_LOGIN_CALLBACK_URL"))
server.RoutesRegister(e, serverHandler)
port := ":" + os.Getenv("APP_PORT")
e.Logger.Fatal(e.Start(port))
}