Merge branch 'migration' of https://github.com/dikstub-rssa/simrs-be into feat/sync-setting-vanili

# Conflicts:
#	internal/infra/sync-consumer-cfg/tycovar.go
This commit is contained in:
vanilia
2025-12-03 11:51:50 +07:00
163 changed files with 6583 additions and 429 deletions
@@ -4,12 +4,12 @@ import (
"net/http"
/******************** main / transaction ********************/
member "simrs-vx/internal/interface/bpjs-handler/member"
monitoring "simrs-vx/internal/interface/bpjs-handler/monitoring"
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"
member "simrs-vx/internal/interface/main-handler/member"
monitoring "simrs-vx/internal/interface/main-handler/monitoring"
reference "simrs-vx/internal/interface/main-handler/reference"
vclaimsep "simrs-vx/internal/interface/main-handler/vclaim-sep"
vclaimsephist "simrs-vx/internal/interface/main-handler/vclaim-sep-hist"
vclaimsepprint "simrs-vx/internal/interface/main-handler/vclaim-sep-print"
/******************** actor ********************/
@@ -49,7 +49,7 @@ func SetRoutes() http.Handler {
hk.GroupRoutes("/v1/vclaim-sep", r, hk.MapHandlerFunc{
"POST /": vclaimsep.O.Create,
"PATCH /{id}": vclaimsep.O.Update,
"PATCH /{id}": vclaimsep.O.GetDetail,
"DELETE /{id}": vclaimsep.O.Delete,
})
@@ -0,0 +1,80 @@
package soapi
import (
"net/http"
rw "github.com/karincake/risoles"
sf "github.com/karincake/semprit"
// ua "github.com/karincake/tumpeng/auth/svc"
e "simrs-vx/internal/domain/main-entities/action-report"
u "simrs-vx/internal/use-case/main-use-case/action-report"
pa "simrs-vx/internal/lib/auth"
d "github.com/karincake/dodol"
)
type myBase struct{}
var O myBase
func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
dto := e.CreateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
dto.AuthInfo = *authInfo
res, err := u.Create(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) GetList(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
sf.UrlQueryParam(&dto, *r.URL)
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.ReadDetailDto{}
dto.Id = uint16(id)
res, err := u.ReadDetail(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.UpdateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
dto.Id = uint16(id)
res, err := u.Update(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.DeleteDto{}
dto.Id = uint16(id)
res, err := u.Delete(dto)
rw.DataResponse(w, res, err)
}
@@ -68,4 +68,4 @@ func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
dto.Id = uint16(id)
res, err := u.Delete(dto)
rw.DataResponse(w, res, err)
}
}
@@ -0,0 +1,32 @@
package controlplan
import (
"net/http"
e "simrs-vx/internal/domain/bpjs-entities/control-plan"
u "simrs-vx/internal/use-case/bpjs-use-case/control-plan"
d "github.com/karincake/dodol"
rw "github.com/karincake/risoles"
)
func GetList(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue1 := rw.ValidateString(w, "controlType", r.PathValue("controlType"))
if pValue1 == "" {
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "controlType is required"}, nil)
}
pValue2 := rw.ValidateString(w, "polyCode", r.PathValue("polyCode"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "polyCode is required"}, nil)
}
pValue3 := rw.ValidateString(w, "date", r.PathValue("date"))
if pValue3 == "" {
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "date is required"}, nil)
}
dto.PathValue1 = pValue1
dto.PathValue2 = pValue2
dto.PathValue3 = pValue3
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
@@ -38,6 +38,7 @@ func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) {
return
}
dto := e.ReadDetailDto{}
sf.UrlQueryParam(&dto, *r.URL)
dto.Code = &code
res, err := u.ReadDetail(dto)
rw.DataResponse(w, res, err)
@@ -4,6 +4,7 @@ import (
"net/http"
/******************** main / transaction ********************/
actionreport "simrs-vx/internal/interface/main-handler/action-report"
adime "simrs-vx/internal/interface/main-handler/adime"
admemployeehist "simrs-vx/internal/interface/main-handler/adm-employee-hist"
ambulancetransportrequest "simrs-vx/internal/interface/main-handler/ambulance-transport-req"
@@ -34,6 +35,7 @@ import (
prescription "simrs-vx/internal/interface/main-handler/prescription"
prescriptionitem "simrs-vx/internal/interface/main-handler/prescription-item"
responsibledoctorhist "simrs-vx/internal/interface/main-handler/responsible-doctor-hist"
resume "simrs-vx/internal/interface/main-handler/resume"
sbar "simrs-vx/internal/interface/main-handler/sbar"
soapi "simrs-vx/internal/interface/main-handler/soapi"
uploadfile "simrs-vx/internal/interface/main-handler/upload-file"
@@ -91,6 +93,8 @@ import (
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"
materialpackage "simrs-vx/internal/interface/main-handler/material-package"
materialpackageitem "simrs-vx/internal/interface/main-handler/material-package-item"
mcusrc "simrs-vx/internal/interface/main-handler/mcu-src"
mcusrccategory "simrs-vx/internal/interface/main-handler/mcu-src-category"
mcusubsrc "simrs-vx/internal/interface/main-handler/mcu-sub-src"
@@ -119,9 +123,19 @@ import (
regency "simrs-vx/internal/interface/main-handler/regency"
village "simrs-vx/internal/interface/main-handler/village"
///// Internal
/******************** Internal ********************/
validation "simrs-vx/internal/interface/main-handler/helper/validation"
"simrs-vx/internal/interface/main-handler/home"
/******************** BPJS ********************/
controlplan "simrs-vx/internal/interface/main-handler/control-plan"
member "simrs-vx/internal/interface/main-handler/member"
monitoring "simrs-vx/internal/interface/main-handler/monitoring"
reference "simrs-vx/internal/interface/main-handler/reference"
referral "simrs-vx/internal/interface/main-handler/referral"
vclaimsep "simrs-vx/internal/interface/main-handler/vclaim-sep"
vclaimsephist "simrs-vx/internal/interface/main-handler/vclaim-sep-hist"
vclaimsepprint "simrs-vx/internal/interface/main-handler/vclaim-sep-print"
)
// One place route to relatively easier to manage, ESPECIALLY in tracking
@@ -137,6 +151,7 @@ func SetRoutes() http.Handler {
a.RegisterExtCall(validation.RegisterValidation)
a.RegisterExtCall(sync.SetConfig)
a.RegisterExtCall(docscfg.ParseCfg)
a.RegisterExtCall(ibpjs.SetConfig)
r := http.NewServeMux()
@@ -159,6 +174,7 @@ func SetRoutes() http.Handler {
hc.RegCrud(r, "/v1/sbar", auth.GuardMW, sbar.O)
hc.RegCrud(r, "/v1/prescription-item", prescriptionitem.O)
hc.RegCrud(r, "/v1/device-order-item", deviceorderitem.O)
hc.RegCrud(r, "/v1/action-report", auth.GuardMW, actionreport.O)
hc.RegCrud(r, "/v1/material-order-item", materialorderitem.O)
hk.GroupRoutes("/v1/encounter", r, auth.GuardMW, hk.MapHandlerFunc{
@@ -289,6 +305,15 @@ func SetRoutes() http.Handler {
hc.RegCrud(r, "/v1/encounter-document", encounterdocument.O)
hc.RegCrud(r, "/v1/general-consent", generalconsent.O)
r.HandleFunc("POST /v1/generate-file", generatefile.Generate)
hk.GroupRoutes("/v1/resume", r, auth.GuardMW, hk.MapHandlerFunc{
"POST /": resume.Create,
"GET /": resume.GetList,
"GET /{id}": resume.GetDetail,
"PATCH /{id}": resume.Update,
"DELETE /{id}": resume.Delete,
"PATCH /{id}/verify": resume.Verify,
"PATCH /{id}/validate": resume.Validate,
})
/******************** actor ********************/
hc.RegCrud(r, "/v1/person", person.O)
@@ -347,6 +372,8 @@ func SetRoutes() http.Handler {
hc.RegCrudByCode(r, "/v1/medicine", medicine.O)
hc.RegCrudByCode(r, "/v1/device", device.O)
hc.RegCrudByCode(r, "/v1/material", material.O)
hc.RegCrudByCode(r, "/v1/material-package", materialpackage.O)
hc.RegCrud(r, "/v1/material-package-item", materialpackageitem.O)
hc.RegCrud(r, "/v1/doctor-fee", doctorfee.O)
hc.RegCrudByCode(r, "/v1/medical-action-src", medicalactionsrc.O)
hc.RegCrud(r, "/v1/medical-action-src-item", medicalactionsrcitem.O)
@@ -362,6 +389,51 @@ func SetRoutes() http.Handler {
hc.RegCrudByCode(r, "/v1/province", province.O)
hc.RegCrudByCode(r, "/v1/postal-region", postalregion.O)
/******************** BPJS ********************/
hk.GroupRoutes("/v1/vclaim-sep", r, hk.MapHandlerFunc{
"POST /": vclaimsep.O.Create,
"GET /{number}": vclaimsep.O.GetDetail,
"DELETE /{number}": 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,
})
hk.GroupRoutes("/v1/member", r, hk.MapHandlerFunc{
"GET /bpjs/{cardNumber}/{sepDate}": member.GetListByBpjsNumber,
"GET /nik/{nik}/{sepDate}": member.GetListByNik,
})
hk.GroupRoutes("/v1/monitoring", r, hk.MapHandlerFunc{
"GET /visit/{date}/{serviceType}": monitoring.GetListVisit,
"GET /hist/{cardNumber}/{startDate}/{endDate}": monitoring.GetListHist,
})
hk.GroupRoutes("/v1/control-plan", r, hk.MapHandlerFunc{
"GET /{controlType}/{polyCode}/{date}": controlplan.GetList,
})
hk.GroupRoutes("/v1/referral", r, hk.MapHandlerFunc{
"GET /{number}": referral.GetList,
})
/////
return cmw.SetCors(handlerlogger.SetLog(r))
}
@@ -0,0 +1,71 @@
package material
import (
"net/http"
rw "github.com/karincake/risoles"
sf "github.com/karincake/semprit"
// ua "github.com/karincake/tumpeng/auth/svc"
e "simrs-vx/internal/domain/main-entities/material-package-item"
u "simrs-vx/internal/use-case/main-use-case/material-package-item"
)
type myBase struct{}
var O myBase
func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
dto := e.CreateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
res, err := u.Create(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) GetList(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
sf.UrlQueryParam(&dto, *r.URL)
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id == 0 {
return
}
dto := e.ReadDetailDto{}
dto.Id = uint(id)
res, err := u.ReadDetail(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id == 0 {
return
}
dto := e.UpdateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
dto.Id = uint(id)
res, err := u.Update(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id == 0 {
return
}
dto := e.DeleteDto{}
dto.Id = uint(id)
res, err := u.Delete(dto)
rw.DataResponse(w, res, err)
}
@@ -0,0 +1,71 @@
package material
import (
"net/http"
rw "github.com/karincake/risoles"
sf "github.com/karincake/semprit"
// ua "github.com/karincake/tumpeng/auth/svc"
e "simrs-vx/internal/domain/main-entities/material-package"
u "simrs-vx/internal/use-case/main-use-case/material-package"
)
type myBase struct{}
var O myBase
func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
dto := e.CreateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
res, err := u.Create(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) GetList(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
sf.UrlQueryParam(&dto, *r.URL)
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) {
code := rw.ValidateString(w, "code", r.PathValue("code"))
if code == "" {
return
}
dto := e.ReadDetailDto{}
dto.Code = &code
res, err := u.ReadDetail(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
code := rw.ValidateString(w, "code", r.PathValue("code"))
if code == "" {
return
}
dto := e.UpdateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
dto.Code = code
res, err := u.Update(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
code := rw.ValidateString(w, "code", r.PathValue("code"))
if code == "" {
return
}
dto := e.DeleteDto{}
dto.Code = &code
res, err := u.Delete(dto)
rw.DataResponse(w, res, err)
}
@@ -14,11 +14,11 @@ func GetListByBpjsNumber(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue1 := rw.ValidateString(w, "cardNumber", r.PathValue("cardNumber"))
if pValue1 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "cardNumber is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "cardNumber is required"}, nil)
}
pValue2 := rw.ValidateString(w, "sepDate", r.PathValue("sepDate"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "sepDate is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "sepDate is required"}, nil)
}
dto.ReferenceType = e.RTBpjs
dto.PathValue1 = pValue1
@@ -31,11 +31,11 @@ func GetListByNik(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue1 := rw.ValidateString(w, "nik", r.PathValue("nik"))
if pValue1 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "nik is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "nik is required"}, nil)
}
pValue2 := rw.ValidateString(w, "sepDate", r.PathValue("sepDate"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "sepDate is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "sepDate is required"}, nil)
}
dto.ReferenceType = e.RTNik
dto.PathValue1 = pValue1
@@ -14,11 +14,11 @@ func GetListVisit(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue1 := rw.ValidateString(w, "date", r.PathValue("date"))
if pValue1 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "date is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "date is required"}, nil)
}
pValue2 := rw.ValidateString(w, "serviceType", r.PathValue("serviceType"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "serviceType is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "serviceType is required"}, nil)
}
dto.ReferenceType = e.RTVisit
dto.PathValue1 = pValue1
@@ -31,15 +31,15 @@ func GetListHist(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue1 := rw.ValidateString(w, "cardNumber", r.PathValue("cardNumber"))
if pValue1 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "cardNumber is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "cardNumber is required"}, nil)
}
pValue2 := rw.ValidateString(w, "startDate", r.PathValue("startDate"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "startDate is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "startDate is required"}, nil)
}
pValue3 := rw.ValidateString(w, "endDate", r.PathValue("endDate"))
if pValue3 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "endDate is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "endDate is required"}, nil)
}
dto.ReferenceType = e.RTHist
dto.PathValue1 = pValue1
@@ -21,7 +21,7 @@ func GetListCities(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue := rw.ValidateString(w, "provinceCode", r.PathValue("provinceCode"))
if pValue == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "provinceCode is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "provinceCode is required"}, nil)
}
dto.ReferenceType = e.RTCities
dto.PathValue1 = pValue
@@ -33,7 +33,7 @@ func GetListDistrict(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue := rw.ValidateString(w, "regencyCode", r.PathValue("regencyCode"))
if pValue == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "regencyCode is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "regencyCode is required"}, nil)
}
dto.ReferenceType = e.RTDistrict
dto.PathValue1 = pValue
@@ -45,7 +45,7 @@ func GetListDiagnose(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue := rw.ValidateString(w, "keyword", r.PathValue("keyword"))
if pValue == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "keyword is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "keyword is required"}, nil)
}
dto.ReferenceType = e.RTDiagnose
dto.PathValue1 = pValue
@@ -64,7 +64,7 @@ func GetListMedicinePrb(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue := rw.ValidateString(w, "keyword", r.PathValue("keyword"))
if pValue == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "keyword is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "keyword is required"}, nil)
}
dto.ReferenceType = e.RTMedicinePrb
dto.PathValue1 = pValue
@@ -76,7 +76,7 @@ func GetListUnit(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue := rw.ValidateString(w, "unitCode", r.PathValue("unitCode"))
if pValue == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "unitCode is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "unitCode is required"}, nil)
}
dto.ReferenceType = e.RTUnit
dto.PathValue1 = pValue
@@ -88,11 +88,11 @@ func GetListHealthcare(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue1 := rw.ValidateString(w, "healthcare", r.PathValue("healthcare"))
if pValue1 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "healthcare is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "healthcare is required"}, nil)
}
pValue2 := rw.ValidateString(w, "healthcareType", r.PathValue("healthcareType"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "healthcareType is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "healthcareType is required"}, nil)
}
dto.ReferenceType = e.RTHealthcare
dto.PathValue1 = pValue1
@@ -105,15 +105,15 @@ func GetListDoctor(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
pValue1 := rw.ValidateString(w, "serviceType", r.PathValue("serviceType"))
if pValue1 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "serviceType is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "serviceType is required"}, nil)
}
pValue2 := rw.ValidateString(w, "serviceDate", r.PathValue("serviceDate"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "serviceDate is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "serviceDate is required"}, nil)
}
pValue3 := rw.ValidateString(w, "specialistCode", r.PathValue("specialistCode"))
if pValue3 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "specialistCode is required"}, nil)
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "specialistCode is required"}, nil)
}
dto.PathValue1 = pValue1
dto.PathValue2 = pValue2
@@ -0,0 +1,22 @@
package referral
import (
"net/http"
e "simrs-vx/internal/domain/bpjs-entities/referral"
u "simrs-vx/internal/use-case/bpjs-use-case/referral"
d "github.com/karincake/dodol"
rw "github.com/karincake/risoles"
)
func GetList(w http.ResponseWriter, r *http.Request) {
dto := e.ReadDetailDto{}
number := rw.ValidateString(w, "number", r.PathValue("number"))
if number == "" {
rw.WriteJSON(w, http.StatusBadRequest, d.IS{"message": "number is required"}, nil)
}
dto.Number = &number
res, err := u.ReadDetail(dto)
rw.DataResponse(w, res, err)
}
@@ -0,0 +1,125 @@
package resume
import (
"net/http"
d "github.com/karincake/dodol"
rw "github.com/karincake/risoles"
sf "github.com/karincake/semprit"
// ua "github.com/karincake/tumpeng/auth/svc"
e "simrs-vx/internal/domain/main-entities/resume"
u "simrs-vx/internal/use-case/main-use-case/resume"
erc "simrs-vx/internal/domain/references/common"
pa "simrs-vx/internal/lib/auth"
)
func Create(w http.ResponseWriter, r *http.Request) {
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
dto := e.CreateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
dto.AuthInfo = *authInfo
res, err := u.Create(dto)
rw.DataResponse(w, res, err)
}
func GetList(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
sf.UrlQueryParam(&dto, *r.URL)
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
func GetDetail(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.ReadDetailDto{}
sf.UrlQueryParam(&dto, *r.URL)
dto.Id = uint(id)
res, err := u.ReadDetail(dto)
rw.DataResponse(w, res, err)
}
func Update(w http.ResponseWriter, r *http.Request) {
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.UpdateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
dto.Id = uint(id)
dto.AuthInfo = *authInfo
res, err := u.Update(dto)
rw.DataResponse(w, res, err)
}
func Delete(w http.ResponseWriter, r *http.Request) {
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.DeleteDto{}
dto.Id = uint(id)
dto.AuthInfo = *authInfo
res, err := u.Delete(dto)
rw.DataResponse(w, res, err)
}
func Verify(w http.ResponseWriter, r *http.Request) {
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.UpdateDto{}
dto.Id = uint(id)
dto.Status_Code = erc.DVCVerified
dto.AuthInfo = *authInfo
res, err := u.UpdateStatusCode(dto)
rw.DataResponse(w, res, err)
}
func Validate(w http.ResponseWriter, r *http.Request) {
authInfo, err := pa.GetAuthInfo(r)
if err != nil {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": err.Error()}, nil)
}
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.UpdateDto{}
dto.Id = uint(id)
dto.Status_Code = erc.DVCValidated
dto.AuthInfo = *authInfo
res, err := u.UpdateStatusCode(dto)
rw.DataResponse(w, res, err)
}
@@ -1,7 +1,6 @@
package vclaimsep
import (
"io"
"net/http"
rw "github.com/karincake/risoles"
@@ -16,14 +15,9 @@ var O myBase
func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
dto := e.CreateDto{}
body, err := io.ReadAll(r.Body)
if err != nil {
http.Error(w, "failed to read body", http.StatusBadRequest)
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
defer r.Body.Close()
dto.RequestPayload = body
res, err := u.Create(dto)
rw.DataResponse(w, res, err)
}
@@ -35,39 +29,39 @@ func (obj myBase) Create(w http.ResponseWriter, r *http.Request) {
// rw.DataResponse(w, res, err)
// }
// func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) {
// id := rw.ValidateInt(w, "id", r.PathValue("id"))
// if id <= 0 {
func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) {
number := rw.ValidateString(w, "number", r.PathValue("number"))
if number <= "" {
return
}
dto := e.ReadDetailDto{}
dto.Number = &number
res, err := u.ReadDetail(dto)
rw.DataResponse(w, res, err)
}
// func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
// number := rw.ValidateString(w, "number", r.PathValue("number"))
// if number != "" {
// return
// }
// dto := e.ReadDetailDto{}
// dto.Id = uint(id)
// res, err := u.ReadDetail(dto)
// dto := e.UpdateDto{}
// if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
// return
// }
// dto.Number = &number
// res, err := u.Update(dto)
// rw.DataResponse(w, res, err)
// }
func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
number := rw.ValidateString(w, "number", r.PathValue("number"))
if number != "" {
return
}
dto := e.UpdateDto{}
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return
}
dto.Number = &number
res, err := u.Update(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
number := rw.ValidateString(w, "number", r.PathValue("number"))
if number != "" {
id := rw.ValidateInt(w, "id", r.PathValue("id"))
if id <= 0 {
return
}
dto := e.DeleteDto{}
dto.Number = &number
dto.Id = uint(id)
res, err := u.Delete(dto)
rw.DataResponse(w, res, err)
}
+20 -2
View File
@@ -1,6 +1,7 @@
package migration
import (
actionreport "simrs-vx/internal/domain/main-entities/action-report"
adime "simrs-vx/internal/domain/main-entities/adime"
admemployeehist "simrs-vx/internal/domain/main-entities/adm-employee-hist"
ambulancetransportreq "simrs-vx/internal/domain/main-entities/ambulance-transport-req"
@@ -18,6 +19,8 @@ import (
device "simrs-vx/internal/domain/main-entities/device"
deviceorder "simrs-vx/internal/domain/main-entities/device-order"
deviceorderitem "simrs-vx/internal/domain/main-entities/device-order-item"
devicepackage "simrs-vx/internal/domain/main-entities/device-package"
devicepackageitem "simrs-vx/internal/domain/main-entities/device-package-item"
diagnosesrc "simrs-vx/internal/domain/main-entities/diagnose-src"
district "simrs-vx/internal/domain/main-entities/district"
division "simrs-vx/internal/domain/main-entities/division"
@@ -45,6 +48,8 @@ import (
material "simrs-vx/internal/domain/main-entities/material"
materialorder "simrs-vx/internal/domain/main-entities/material-order"
materialorderitem "simrs-vx/internal/domain/main-entities/material-order-item"
materialpackage "simrs-vx/internal/domain/main-entities/material-package"
materialpackageitem "simrs-vx/internal/domain/main-entities/material-package-item"
mcuorder "simrs-vx/internal/domain/main-entities/mcu-order"
mcuorderitem "simrs-vx/internal/domain/main-entities/mcu-order-item"
mcuordersubitem "simrs-vx/internal/domain/main-entities/mcu-order-sub-item"
@@ -77,14 +82,17 @@ import (
practiceschedule "simrs-vx/internal/domain/main-entities/practice-schedule"
prescription "simrs-vx/internal/domain/main-entities/prescription"
prescriptionitem "simrs-vx/internal/domain/main-entities/prescription-item"
procedureroom "simrs-vx/internal/domain/main-entities/procedure-room"
procedureroomorder "simrs-vx/internal/domain/main-entities/procedure-room-order"
procedureroomorderitem "simrs-vx/internal/domain/main-entities/procedure-room-order-item"
proceduresrc "simrs-vx/internal/domain/main-entities/procedure-src"
province "simrs-vx/internal/domain/main-entities/province"
regency "simrs-vx/internal/domain/main-entities/regency"
rehab "simrs-vx/internal/domain/main-entities/rehab"
responsibledoctorhist "simrs-vx/internal/domain/main-entities/responsible-doctor-hist"
resume "simrs-vx/internal/domain/main-entities/resume"
room "simrs-vx/internal/domain/main-entities/room"
sbar "simrs-vx/internal/domain/main-entities/sbar"
screening "simrs-vx/internal/domain/main-entities/screening"
soapi "simrs-vx/internal/domain/main-entities/soapi"
specialist "simrs-vx/internal/domain/main-entities/specialist"
specialistintern "simrs-vx/internal/domain/main-entities/specialist-intern"
@@ -142,6 +150,7 @@ func getMainEntities() []any {
&item.Item{},
&itemprice.ItemPrice{},
&infra.Infra{},
&procedureroom.ProcedureRoom{},
&medicinegroup.MedicineGroup{},
&medicinemethod.MedicineMethod{},
&mcusrccategory.McuSrcCategory{},
@@ -161,13 +170,17 @@ func getMainEntities() []any {
&personrelative.PersonRelative{},
&patient.Patient{},
&appointment.Appointment{},
&devicepackage.DevicePackage{},
&devicepackageitem.DevicePackageItem{},
&materialpackage.MaterialPackage{},
&materialpackageitem.MaterialPackageItem{},
&vclaimsep.VclaimSep{},
&encounter.Encounter{},
&laborant.Laborant{},
&specialist.Specialist{},
&subspecialist.Subspecialist{},
&specialistintern.SpecialistIntern{},
&room.Room{},
&soapi.Soapi{},
&sbar.Sbar{},
&adime.Adime{},
@@ -194,6 +207,9 @@ func getMainEntities() []any {
&midwife.Midwife{},
&postalregion.PostalRegion{},
&internalreference.InternalReference{},
&procedureroomorder.ProcedureRoomOrder{},
&procedureroomorderitem.ProcedureRoomOrderItem{},
&vclaimsephist.VclaimSepHist{},
&vclaimsepprint.VclaimSepPrint{},
&vehicle.Vehicle{},
@@ -217,5 +233,7 @@ func getMainEntities() []any {
&vclaimsepcontrolletter.VclaimSepControlLetter{},
&resume.Resume{},
&vclaimreference.VclaimReference{},
&screening.Screening{},
&actionreport.ActionReport{},
}
}
@@ -7,6 +7,7 @@ import (
installation "simrs-vx/internal/domain/sync-entities/installation"
internalreference "simrs-vx/internal/domain/sync-entities/internal-reference"
patient "simrs-vx/internal/domain/sync-entities/patient"
soapi "simrs-vx/internal/domain/sync-entities/soapi"
specialist "simrs-vx/internal/domain/sync-entities/specialist"
subspecialist "simrs-vx/internal/domain/sync-entities/subspecialist"
unit "simrs-vx/internal/domain/sync-entities/unit"
@@ -38,5 +39,8 @@ func getSyncEntities() []any {
&internalreference.InternalReferenceLink{},
&internalreference.InternalReferenceSimxLog{},
&internalreference.InternalReferenceSimgosLog{},
&soapi.SoapiLink{},
&soapi.SoapiSimxLog{},
&soapi.SoapiSimgosLog{},
}
}