package handler import ( "net/http" /******************** main / transaction ********************/ auth "simrs-vx/internal/interface/main-handler/authentication" counter "simrs-vx/internal/interface/main-handler/counter" medicicinemix "simrs-vx/internal/interface/main-handler/medicine-mix" medicicinemixitem "simrs-vx/internal/interface/main-handler/medicine-mix-item" practiceschedule "simrs-vx/internal/interface/main-handler/practice-schedule" /******************** actor ********************/ doctor "simrs-vx/internal/interface/main-handler/doctor" employee "simrs-vx/internal/interface/main-handler/employee" nurse "simrs-vx/internal/interface/main-handler/nurse" nutritionist "simrs-vx/internal/interface/main-handler/nutritionist" patient "simrs-vx/internal/interface/main-handler/patient" person "simrs-vx/internal/interface/main-handler/person" personaddress "simrs-vx/internal/interface/main-handler/person-address" personcontact "simrs-vx/internal/interface/main-handler/person-contact" pharmacist "simrs-vx/internal/interface/main-handler/pharmacist" user "simrs-vx/internal/interface/main-handler/user" /******************** external ********************/ a "github.com/karincake/apem" hk "github.com/karincake/hongkue" /******************** infra ********************/ gs "simrs-vx/internal/infra/gorm-setting" ssdb "simrs-vx/internal/infra/ss-db" /******************** pkg ********************/ cmw "simrs-vx/pkg/cors-manager-mw" hc "simrs-vx/pkg/handler-crud-helper" lh "simrs-vx/pkg/lang-helper" handlerlogger "simrs-vx/pkg/middleware/handler-logger" zlc "simrs-vx/pkg/zerolog-ctx" /******************** sources ********************/ device "simrs-vx/internal/interface/main-handler/device" diagnosesrc "simrs-vx/internal/interface/main-handler/diagnose-src" division "simrs-vx/internal/interface/main-handler/division" divisionposition "simrs-vx/internal/interface/main-handler/division-position" doctorfee "simrs-vx/internal/interface/main-handler/doctor-fee" ethnic "simrs-vx/internal/interface/main-handler/ethnic" infra "simrs-vx/internal/interface/main-handler/infra" installation "simrs-vx/internal/interface/main-handler/installation" insurancecompany "simrs-vx/internal/interface/main-handler/insurance-company" item "simrs-vx/internal/interface/main-handler/item" itemprice "simrs-vx/internal/interface/main-handler/item-price" language "simrs-vx/internal/interface/main-handler/language" material "simrs-vx/internal/interface/main-handler/material" mcusrc "simrs-vx/internal/interface/main-handler/mcu-src" mcusrccategory "simrs-vx/internal/interface/main-handler/mcu-src-category" medicalactionsrc "simrs-vx/internal/interface/main-handler/medical-action-src" medicalactionsrcitem "simrs-vx/internal/interface/main-handler/medical-action-src-item" medicine "simrs-vx/internal/interface/main-handler/medicine" medicinegroup "simrs-vx/internal/interface/main-handler/medicine-group" medicinemethod "simrs-vx/internal/interface/main-handler/medicine-method" pharmacycompany "simrs-vx/internal/interface/main-handler/pharmacy-company" proceduresrc "simrs-vx/internal/interface/main-handler/procedure-src" specialist "simrs-vx/internal/interface/main-handler/specialist" subspecialist "simrs-vx/internal/interface/main-handler/subspecialist" unit "simrs-vx/internal/interface/main-handler/unit" uom "simrs-vx/internal/interface/main-handler/uom" district "simrs-vx/internal/interface/main-handler/district" province "simrs-vx/internal/interface/main-handler/province" regency "simrs-vx/internal/interface/main-handler/regency" village "simrs-vx/internal/interface/main-handler/village" ///// 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(ssdb.SetInstance) a.RegisterExtCall(lh.Populate) a.RegisterExtCall(validation.RegisterValidation) r := http.NewServeMux() /******************** Main ********************/ r.HandleFunc("/", home.Home) r.HandleFunc("POST /v1/authentication/login", auth.Login) // r.HandleFunc("POST /v1/authentication/logout", auth.Logout) hk.Route("POST /v1/authentication/logout", r, auth.GuardMW, auth.Logout) hc.RegCrud(r, "/v1/practice-schedule", practiceschedule.O) hc.RegCrud(r, "/v1/counter", counter.O) hc.RegCrud(r, "/v1/medicine-mix", medicicinemix.O) hc.RegCrud(r, "/v1/medicine-mix-item", medicicinemixitem.O) /******************** actor ********************/ hk.GroupRoutes("/v1/user", r, hk.MapHandlerFunc{ "GET /": user.O.GetList, "GET /{id}": user.O.GetDetail, "POST /": user.O.Create, "PATCH /{id}": user.O.Update, "DELETE /{id}": user.O.Delete, "PATCH /{id}/block": user.O.Block, "PATCH /{id}/active": user.O.Active, }) hk.GroupRoutes("/v1/patient", r, hk.MapHandlerFunc{ "GET /": patient.O.GetList, "GET /{id}": patient.O.GetDetail, "POST /": patient.O.Create, "PATCH /{id}": patient.O.Update, "DELETE /{id}": patient.O.Delete, "GET /by-identifier": patient.O.Search, }) hc.RegCrud(r, "/v1/person", person.O) hc.RegCrud(r, "/v1/person-address", personaddress.O) hc.RegCrud(r, "/v1/person-contact", personcontact.O) hc.RegCrud(r, "/v1/employee", employee.O) hc.RegCrud(r, "/v1/doctor", doctor.O) hc.RegCrud(r, "/v1/nurse", nurse.O) hc.RegCrud(r, "/v1/nutritionist", nutritionist.O) hc.RegCrud(r, "/v1/pharmacist", pharmacist.O) /******************** sources ********************/ hc.RegCrud(r, "/v1/division", division.O) hc.RegCrud(r, "/v1/division-position", divisionposition.O) hc.RegCrud(r, "/v1/installation", installation.O) hc.RegCrud(r, "/v1/unit", unit.O) hc.RegCrud(r, "/v1/pharmacy-company", pharmacycompany.O) hc.RegCrud(r, "/v1/diagnose-src", diagnosesrc.O) hc.RegCrud(r, "/v1/procedure-src", proceduresrc.O) hc.RegCrud(r, "/v1/uom", uom.O) hc.RegCrud(r, "/v1/item", item.O) hc.RegCrud(r, "/v1/item-price", itemprice.O) hc.RegCrud(r, "/v1/infra", infra.O) hc.RegCrud(r, "/v1/medicine-group", medicinegroup.O) hc.RegCrud(r, "/v1/medicine-method", medicinemethod.O) hc.RegCrud(r, "/v1/mcu-src-category", mcusrccategory.O) hc.RegCrud(r, "/v1/mcu-src", mcusrc.O) hc.RegCrud(r, "/v1/ethnic", ethnic.O) hc.RegCrud(r, "/v1/insurance-company", insurancecompany.O) hc.RegCrud(r, "/v1/medicine", medicine.O) hc.RegCrud(r, "/v1/device", device.O) hc.RegCrud(r, "/v1/material", material.O) hc.RegCrud(r, "/v1/doctor-fee", doctorfee.O) hc.RegCrud(r, "/v1/medical-action-src", medicalactionsrc.O) hc.RegCrud(r, "/v1/medical-action-src-item", medicalactionsrcitem.O) hc.RegCrud(r, "/v1/language", language.O) hc.RegCrud(r, "/v1/specialist", specialist.O) hc.RegCrud(r, "/v1/subspecialist", subspecialist.O) hc.RegCrud(r, "/v1/village", village.O) hc.RegCrud(r, "/v1/district", district.O) hc.RegCrud(r, "/v1/regency", regency.O) hc.RegCrud(r, "/v1/province", province.O) ///// return cmw.SetCors(handlerlogger.SetLog(r)) }