first commit

This commit is contained in:
2026-04-22 09:11:46 +07:00
parent 5c577475f1
commit 27694798c2
19 changed files with 2748 additions and 2274 deletions

No files matched your search

+30 -46
View File
@@ -1,19 +1,22 @@
package v1
import (
AplicareHandler "api-service/internal/aplicare"
"api-service/internal/config"
"api-service/internal/database"
"api-service/internal/handlers/antreanbpjs"
authHandlers "api-service/internal/handlers/auth"
healthcheckHandlers "api-service/internal/handlers/healthcheck"
pesertaHandlers "api-service/internal/handlers/peserta"
retribusiHandlers "api-service/internal/handlers/retribusi"
"api-service/internal/middleware"
services "api-service/internal/services/auth"
"api-service/pkg/logger"
"context"
"os"
"os/signal"
"syscall"
"time"
"github.com/gin-gonic/gin"
"github.com/go-playground/validator/v10"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
)
@@ -111,37 +114,35 @@ func RegisterRoutes(cfg *config.Config) *gin.Engine {
// PUBLISHED ROUTES
// =============================================================================
// Participant eligibility information (peserta) routes
pesertaHandler := pesertaHandlers.NewPesertaHandler(pesertaHandlers.PesertaHandlerConfig{
// Retribusi endpoints with WebSocket notifications
antreanbpjsHandler := antreanbpjs.NewVClaimHandler(antreanbpjs.VClaimHandlerConfig{
Config: cfg,
Logger: *logger.Default(),
Validator: validator.New(),
Validator: nil,
})
pesertaGroup := v1.Group("/peserta")
pesertaGroup.GET("/nokartu/:nokartu", pesertaHandler.GetBynokartu)
pesertaGroup.GET("/nik/:nik", pesertaHandler.GetBynik)
antreanbpjsGroup := v1.Group("/poli")
antreanbpjsGroup.GET("/ketersediaan", antreanbpjsHandler.GetPoli)
antreanbpjsGroup.GET("/apapun", antreanbpjsHandler.Gethealth)
// Retribusi endpoints with WebSocket notifications
retribusiHandler := retribusiHandlers.NewRetribusiHandler()
retribusiGroup := v1.Group("/retribusi")
aplicaresHandler := AplicareHandler.NewAplicaresHandler(AplicareHandler.AplicaresHandlerConfig{
Config: cfg,
Logger: *logger.Default(),
Validator: nil,
})
// Start background scheduler — berhenti otomatis saat app shutdown
ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
aplicaresHandler.StartScheduler(ctx)
ag := v1.Group("/aplicares")
{
retribusiGroup.GET("", retribusiHandler.GetRetribusi)
retribusiGroup.GET("/dynamic", retribusiHandler.GetRetribusiDynamic)
retribusiGroup.GET("/search", retribusiHandler.SearchRetribusiAdvanced)
retribusiGroup.GET("/id/:id", retribusiHandler.GetRetribusiByID)
// POST/PUT/DELETE with automatic WebSocket notifications
retribusiGroup.POST("", func(c *gin.Context) {
retribusiHandler.CreateRetribusi(c)
})
retribusiGroup.PUT("/id/:id", func(c *gin.Context) {
retribusiHandler.UpdateRetribusi(c)
})
retribusiGroup.DELETE("/id/:id", func(c *gin.Context) {
retribusiHandler.DeleteRetribusi(c)
})
ag.GET("/beds", aplicaresHandler.GetBeds)
ag.GET("/state", aplicaresHandler.GetState)
ag.POST("/sync", aplicaresHandler.TriggerSync)
ag.GET("/check-bpjs", aplicaresHandler.CheckBPJS)
ag.GET("/ref/kelas", aplicaresHandler.GetRefKelas)
ag.GET("/logs", aplicaresHandler.GetSyncLogs)
}
// =============================================================================
@@ -151,23 +152,6 @@ func RegisterRoutes(cfg *config.Config) *gin.Engine {
protected := v1.Group("/")
protected.Use(middleware.ConfigurableAuthMiddleware(cfg))
// Protected retribusi endpoints (Authentication Required)
protectedRetribusiGroup := protected.Group("/retribusi")
{
protectedRetribusiGroup.GET("", retribusiHandler.GetRetribusi)
protectedRetribusiGroup.GET("/dynamic", retribusiHandler.GetRetribusiDynamic)
protectedRetribusiGroup.GET("/search", retribusiHandler.SearchRetribusiAdvanced)
protectedRetribusiGroup.GET("/id/:id", retribusiHandler.GetRetribusiByID)
protectedRetribusiGroup.POST("", func(c *gin.Context) {
retribusiHandler.CreateRetribusi(c)
})
protectedRetribusiGroup.PUT("/id/:id", func(c *gin.Context) {
retribusiHandler.UpdateRetribusi(c)
})
protectedRetribusiGroup.DELETE("/id/:id", func(c *gin.Context) {
retribusiHandler.DeleteRetribusi(c)
})
}
return router
}