package simgossynchandler import ( "net/http" /******************** infra ********************/ gs "simrs-vx/internal/infra/gorm-setting" satudb "simrs-vx/internal/infra/satu-db" simgosdb "simrs-vx/internal/infra/simgos-db" sync "simrs-vx/internal/infra/sync-cfg" /******************** 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" /******************** external ********************/ a "github.com/karincake/apem" hk "github.com/karincake/hongkue" /******************** internal ********************/ "simrs-vx/internal/interface/main-handler/home" "simrs-vx/internal/interface/simgos-sync-handler/new/division" "simrs-vx/internal/interface/simgos-sync-handler/new/encounter" "simrs-vx/internal/interface/simgos-sync-handler/new/installation" "simrs-vx/internal/interface/simgos-sync-handler/new/patient" "simrs-vx/internal/interface/simgos-sync-handler/new/soapi" "simrs-vx/internal/interface/simgos-sync-handler/new/specialist" "simrs-vx/internal/interface/simgos-sync-handler/new/subspecialist" sd "simrs-vx/internal/interface/simgos-sync-handler/seeder" oldpatient "simrs-vx/internal/interface/simgos-sync-handler/old/patient" oauth "simrs-vx/internal/interface/simgos-sync-handler/old/authentication" // just a reminder, an openauth ) func SetRoutes() http.Handler { /// a.RegisterExtCall(gs.Adjust) a.RegisterExtCall(zlc.Adjust) a.RegisterExtCall(lh.Populate) a.RegisterExtCall(sync.SetConfig) a.RegisterExtCall(simgosdb.SetInstance) a.RegisterExtCall(satudb.SetInstance) r := http.NewServeMux() /******************** Main ********************/ r.HandleFunc("/", home.Home) /******************** SvcToOld ******************/ prefixnew := "/new-to-old" hc.SyncCrud(r, prefixnew+"/v1/installation", installation.O) hc.SyncCrud(r, prefixnew+"/v1/division", division.O) hc.SyncCrud(r, prefixnew+"/v1/specialist", specialist.O) hc.SyncCrud(r, prefixnew+"/v1/subspecialist", subspecialist.O) hk.GroupRoutes(prefixnew+"/v1/patient", r, hk.MapHandlerFunc{ "POST /": patient.O.Create, "POST /log": patient.O.CreateLog, "PATCH /{id}": patient.O.Update, "DELETE /{id}": patient.O.Delete, "POST /nomr": patient.O.GenerateNomr, }) hk.GroupRoutes(prefixnew+"/v1/encounter", r, hk.MapHandlerFunc{ "POST /": encounter.O.Create, "POST /log": encounter.O.CreateLog, "PATCH /{id}": encounter.O.Update, "DELETE /{id}": encounter.O.Delete, "PATCH /{id}/checkin": encounter.O.Checkin, "PATCH /{id}/checkout": encounter.O.Checkout, "PATCH /{id}/update-status": encounter.O.UpdateStatus, "PATCH /{id}/req-switch-unit": encounter.O.RequestSwitchSpecialist, "PATCH /{id}/approve-switch-unit": encounter.O.ApproveSwitchSpecialist, "PATCH /{id}/cancel-switch-unit": encounter.O.CancelSwitchSpecialist, }) hc.SyncCrud(r, prefixnew+"/v1/soapi", soapi.O) /******************** Seeder ******************/ prefixseeder := "/seeder" hk.GroupRoutes(prefixseeder+"/v1", r, hk.MapHandlerFunc{ "POST /": sd.O.Seeder, }) /******************** SvcToNew ******************/ prefixold := "/old-to-new" hk.GroupRoutes(prefixold+"/v1/patient", r, oauth.OldGuardMW, hk.MapHandlerFunc{ "POST /": oldpatient.O.Create, "PATCH /{id}": oldpatient.O.Update, "DELETE /{id}": oldpatient.O.Delete, }) // FINISH THIS return cmw.SetCors(handlerlogger.SetLog(r)) }