feat (patient): add search by identifier and nik only

This commit is contained in:
dpurbosakti
2025-10-17 13:04:43 +07:00
parent 1b6b5a73b4
commit 319da694af
5 changed files with 54 additions and 17 deletions
@@ -260,13 +260,14 @@ func SetRoutes() http.Handler {
"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,
"POST /{id}/upload": patient.O.Upload,
"GET /": patient.O.GetList,
"GET /{id}": patient.O.GetDetail,
"POST /": patient.O.Create,
"PATCH /{id}": patient.O.Update,
"DELETE /{id}": patient.O.Delete,
"GET /search/{keyword}": patient.O.Search,
"GET /by-resident-identity": patient.O.SearchByResidentIdentity,
"POST /{id}/upload": patient.O.Upload,
})
/******************** sources ********************/
@@ -12,6 +12,8 @@ import (
u "simrs-vx/internal/use-case/main-use-case/patient"
ere "simrs-vx/internal/domain/references/encounter"
d "github.com/karincake/dodol"
)
type myBase struct{}
@@ -73,8 +75,21 @@ func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
}
func (obj myBase) Search(w http.ResponseWriter, r *http.Request) {
dto := e.SearchDto{}
keyword := rw.ValidateString(w, "keyword", r.PathValue("keyword"))
if keyword == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "keyword is required"}, nil)
}
dto.Mode = e.SMIdent
dto.Search = keyword
res, err := u.Search(dto)
rw.DataResponse(w, res, err)
}
func (obj myBase) SearchByResidentIdentity(w http.ResponseWriter, r *http.Request) {
dto := e.SearchDto{}
sf.UrlQueryParam(&dto, *r.URL)
dto.Mode = e.SMNik
res, err := u.Search(dto)
rw.DataResponse(w, res, err)
}