-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
71 lines (63 loc) · 2.48 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
package main
import (
"capstone-project/config"
"capstone-project/delivery/controllers/application"
_assetController "capstone-project/delivery/controllers/asset"
_authController "capstone-project/delivery/controllers/auth"
_categoryController "capstone-project/delivery/controllers/category"
_itemController "capstone-project/delivery/controllers/item"
_procurementController "capstone-project/delivery/controllers/procurement"
_statisticController "capstone-project/delivery/controllers/statistic"
_userController "capstone-project/delivery/controllers/user"
"capstone-project/delivery/routes"
_appRepo "capstone-project/repository/application"
_assetRepo "capstone-project/repository/asset"
_authRepo "capstone-project/repository/auth"
_categoryRepo "capstone-project/repository/category"
_itemRepo "capstone-project/repository/item"
_procurementRepo "capstone-project/repository/procurement"
_statisticRepo "capstone-project/repository/statistic"
_userRepo "capstone-project/repository/user"
"log"
"os"
"github.com/joho/godotenv"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
)
func main() {
// initialize database connection
err := godotenv.Load()
if err != nil {
log.Fatal("Error loading .env file")
}
connectionString := os.Getenv("DB_CONNECTION_STRING")
db, err := config.InitDB(connectionString)
if err != nil {
panic(err)
}
defer db.Close()
// initialize model
userRepo := _userRepo.New(db)
authRepo := _authRepo.New(db)
itemRepo := _itemRepo.New(db)
assetRepo := _assetRepo.New(db)
procurementRepo := _procurementRepo.New(db)
appRepo := _appRepo.NewApplication(db)
categoryRepo := _categoryRepo.New(db)
statisticRepo := _statisticRepo.New(db)
// initialize controller
userController := _userController.New(userRepo)
authController := _authController.New(authRepo)
itemController := _itemController.New(itemRepo)
assetController := _assetController.New(assetRepo)
procurementController := _procurementController.New(procurementRepo)
appController := application.New(appRepo)
categoryController := _categoryController.New(categoryRepo)
statisticController := _statisticController.New(statisticRepo)
// create new echo
e := echo.New()
e.Pre(middleware.RemoveTrailingSlash(), middleware.CORS())
routes.RegisterPath(e, userController, authController, assetController, itemController, appController, procurementController, categoryController, statisticController)
// start the server, and log if it fails
e.Logger.Fatal(e.Start(":8080"))
}