70 lines
1.9 KiB
Go
70 lines
1.9 KiB
Go
package routes
|
|
|
|
import (
|
|
"antrian-operasi/internal/config"
|
|
"antrian-operasi/internal/database"
|
|
antrianoperasi "antrian-operasi/internal/domain/antrian_operasi"
|
|
"antrian-operasi/internal/domain/dashboard"
|
|
"antrian-operasi/internal/domain/keycloak"
|
|
"antrian-operasi/internal/domain/reference/diagnosa"
|
|
"antrian-operasi/internal/domain/reference/dokter"
|
|
"antrian-operasi/internal/domain/reference/kategori"
|
|
"antrian-operasi/internal/domain/reference/pasien"
|
|
"antrian-operasi/internal/domain/reference/spesialis"
|
|
"antrian-operasi/internal/domain/reference/tindakan"
|
|
"antrian-operasi/internal/middleware"
|
|
"log"
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
swaggerFiles "github.com/swaggo/files"
|
|
ginSwagger "github.com/swaggo/gin-swagger"
|
|
)
|
|
|
|
func RegisterRoutes(cfg *config.Config, dbService database.Service) *gin.Engine {
|
|
gin.SetMode(cfg.Server.Mode)
|
|
router := gin.New()
|
|
|
|
router.GET("/ping", func(c *gin.Context) {
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"message": "pong",
|
|
})
|
|
})
|
|
|
|
router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
|
|
|
|
// init middleware
|
|
router.Use(middleware.SecureCORSConfig(cfg.Security))
|
|
|
|
authKeycloak, err := middleware.AuthKeycloak(cfg.Keycloak)
|
|
if err != nil {
|
|
log.Fatalf("Unable to initiate keycloak auth")
|
|
}
|
|
|
|
api := router.Group("/api")
|
|
|
|
antrian := api.Group("/antrian-operasi", authKeycloak)
|
|
{
|
|
antrianoperasi.RegisterRoutes(antrian, dbService)
|
|
}
|
|
reference := api.Group("/reference", authKeycloak)
|
|
{
|
|
kategori.RegisterRoutes(reference, dbService)
|
|
spesialis.RegisterRoutes(reference, dbService)
|
|
dokter.RegisterRoutes(reference, dbService)
|
|
pasien.RegisterRoutes(reference, dbService)
|
|
diagnosa.RegisterRoutes(reference, dbService)
|
|
tindakan.RegisterRoutes(reference, dbService)
|
|
}
|
|
dboard := api.Group("dashboard", authKeycloak)
|
|
{
|
|
dashboard.RegisterRoutes(dboard, dbService)
|
|
}
|
|
kc := api.Group("/keycloak")
|
|
{
|
|
keycloak.RegisterRoutes(kc, cfg.Keycloak)
|
|
}
|
|
|
|
return router
|
|
}
|