62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
package online_order
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
logger "github.com/rs/zerolog/log"
|
|
|
|
"online-order/api/middlewares"
|
|
"online-order/configs"
|
|
"online-order/ent/migrate"
|
|
"online-order/entity"
|
|
)
|
|
|
|
// To load .env file
|
|
func init() {
|
|
configs.Initialize()
|
|
}
|
|
|
|
func main() {
|
|
logger.Info().Msg("Server starting ...")
|
|
conf := configs.LoadConfigEnv()
|
|
|
|
// Start by connecting to database
|
|
db := configs.NewDBConnection()
|
|
defer db.Close()
|
|
|
|
// Run the automatic migration tool to create all schema resources.
|
|
ctx := context.Background()
|
|
err := db.Schema.Create(
|
|
ctx,
|
|
migrate.WithDropIndex(true),
|
|
migrate.WithDropColumn(true),
|
|
)
|
|
if err != nil {
|
|
log.Fatalf("failed creating schema resources: %v", err)
|
|
}
|
|
|
|
app := gin.Default()
|
|
api_v1 := app.Group("api/v1")
|
|
api_restricted := app.Group("api/v1/in")
|
|
|
|
router_base := &entity.RouterBase{
|
|
Database: db,
|
|
OpenApp: api_v1,
|
|
}
|
|
router := &entity.Routers{
|
|
RouterBase: *router_base,
|
|
RestrictedApp: api_restricted,
|
|
}
|
|
|
|
middlewareController := middlewares.NewMiddlewareRouters(router)
|
|
api_restricted.Use(middlewareController.JwAuthtMiddleware())
|
|
|
|
handler_users.NewUserRouters(router)
|
|
|
|
logger.Info().Msg("Server ready to go ...")
|
|
app.Run(conf.ServerPort)
|
|
}
|