164 lines
7.1 KiB
Go
164 lines
7.1 KiB
Go
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))
|
|
}
|