This repository has been archived by the owner on Jul 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapp.go
66 lines (53 loc) · 1.85 KB
/
app.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
package main
import (
"net/http"
"qbills/configs"
"qbills/drivers"
"qbills/routes"
"qbills/utils/helpers/midtrans"
"github.com/go-playground/validator"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
"github.com/sirupsen/logrus"
)
func main() {
myApp := echo.New()
myApp.Use(middleware.CORSWithConfig(middleware.CORSConfig{
AllowOrigins: []string{"*"},
AllowHeaders: []string{echo.HeaderOrigin, echo.HeaderContentType, echo.HeaderAccept, echo.HeaderAuthorization},
}))
validate := validator.New()
config, err := configs.LoadConfig()
if err != nil {
logrus.Fatal("Error loading config:", err.Error())
}
db, err := drivers.NewMySQLConnection(&config.MySQL)
if err != nil {
logrus.Fatal("Error connecting to MySQL:", err.Error())
}
midtransCoreApi := midtrans.NewMidtransCoreApi(&config.Midtrans)
myApp.GET("", func(c echo.Context) error {
return c.String(http.StatusOK, "Welcome to Q Bills API Services")
})
routes.AdminRoutes(myApp, db, validate)
routes.CashierRoutes(myApp, db, validate)
routes.SuperAdminRoutes(myApp, db, validate)
routes.ProductRoutes(myApp, db, validate)
routes.StockRoutes(myApp, db, validate)
routes.ConvertPointRoutes(myApp, db, validate)
routes.ProductTypeRoutes(myApp, db, validate)
routes.MembershipRoutes(myApp, db, validate)
routes.MembershipCardRoutes(myApp, db)
routes.PaymentTypeRoutes(myApp, db, validate)
routes.PaymentMethodRoutes(myApp, db, validate)
routes.ProductDetailRoutes(myApp, db, validate)
routes.MemberShipPointRoutes(myApp, db, validate)
routes.TransactionRoutes(myApp, db, midtransCoreApi, validate)
myApp.Pre(middleware.RemoveTrailingSlash())
myApp.Use(middleware.LoggerWithConfig(
middleware.LoggerConfig{
Format: "method=${method}, uri=${uri}, status=${status}, time=${time_rfc3339}\n",
},
))
myApp.Logger.Fatal(myApp.Start(":80"))
}