Files
simrsx-be/internal/interface/bpjs-handler/bpjs-handler.go
2025-10-15 15:49:05 +07:00

80 lines
2.7 KiB
Go

package bpjshandler
import (
"net/http"
/******************** main / transaction ********************/
reference "simrs-vx/internal/interface/bpjs-handler/reference"
vclaimsep "simrs-vx/internal/interface/bpjs-handler/vclaim-sep"
vclaimsephist "simrs-vx/internal/interface/bpjs-handler/vclaim-sep-hist"
vclaimsepprint "simrs-vx/internal/interface/bpjs-handler/vclaim-sep-print"
/******************** actor ********************/
/******************** external ********************/
a "github.com/karincake/apem"
hk "github.com/karincake/hongkue"
/******************** infra ********************/
ibpjs "simrs-vx/internal/infra/bpjs"
gs "simrs-vx/internal/infra/gorm-setting"
/******************** pkg ********************/
cmw "simrs-vx/pkg/cors-manager-mw"
lh "simrs-vx/pkg/lang-helper"
handlerlogger "simrs-vx/pkg/middleware/handler-logger"
zlc "simrs-vx/pkg/zerolog-ctx"
/******************** sources ********************/
///// Internal
validation "simrs-vx/internal/interface/main-handler/helper/validation"
"simrs-vx/internal/interface/main-handler/home"
)
// One place route to relatively easier to manage, ESPECIALLY in tracking
func SetRoutes() http.Handler {
/////
a.RegisterExtCall(gs.Adjust)
a.RegisterExtCall(zlc.Adjust)
a.RegisterExtCall(lh.Populate)
a.RegisterExtCall(ibpjs.SetConfig)
a.RegisterExtCall(validation.RegisterValidation)
r := http.NewServeMux()
/******************** Main ********************/
r.HandleFunc("/", home.Home)
hk.GroupRoutes("/v1/vclaim-sep", r, hk.MapHandlerFunc{
"POST /": vclaimsep.O.Create,
"PATCH /{id}": vclaimsep.O.Update,
"DELETE /{id}": vclaimsep.O.Delete,
})
hk.GroupRoutes("/v1/vclaim-sep-hist", r, hk.MapHandlerFunc{
"GET /": vclaimsephist.O.GetList,
})
hk.GroupRoutes("/v1/vclaim-sep-print", r, hk.MapHandlerFunc{
"POST /": vclaimsepprint.O.Create,
})
hk.GroupRoutes("/v1/reference", r, hk.MapHandlerFunc{
"GET /province": reference.GetListProvince,
"GET /regency/{provinceCode}": reference.GetListCities,
"GET /district/{regencyCode}": reference.GetListDistrict,
"GET /diagnose/{keyword}": reference.GetListDiagnose,
"GET /diagnose-prb": reference.GetListDiagnosePrb,
"GET /medicine-prb/{keyword}": reference.GetListMedicinePrb,
"GET /unit/{unitCode}": reference.GetListUnit,
"GET /healthcare/{healthcare}/{healthcareType}": reference.GetListHealthcare,
"GET /responsible-doctor/{serviceType}/{serviceDate}/{specialistCode}": reference.GetListDoctor,
})
/******************** actor ********************/
/******************** sources ********************/
return cmw.SetCors(handlerlogger.SetLog(r))
}