feat (vclaim-sep): create, read, delete done

This commit is contained in:
dpurbosakti
2025-11-28 16:10:35 +07:00
parent abfbc568b0
commit 2a39301563
24 changed files with 343 additions and 75 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,
})
@@ -1,45 +0,0 @@
package member
import (
"net/http"
e "simrs-vx/internal/domain/bpjs-entities/member"
u "simrs-vx/internal/use-case/bpjs-use-case/member"
d "github.com/karincake/dodol"
rw "github.com/karincake/risoles"
)
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)
}
pValue2 := rw.ValidateString(w, "sepDate", r.PathValue("sepDate"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "sepDate is required"}, nil)
}
dto.ReferenceType = e.RTBpjs
dto.PathValue1 = pValue1
dto.PathValue2 = pValue2
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
pValue2 := rw.ValidateString(w, "sepDate", r.PathValue("sepDate"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "sepDate is required"}, nil)
}
dto.ReferenceType = e.RTNik
dto.PathValue1 = pValue1
dto.PathValue2 = pValue2
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
@@ -1,50 +0,0 @@
package monitoring
import (
"net/http"
e "simrs-vx/internal/domain/bpjs-entities/monitoring"
u "simrs-vx/internal/use-case/bpjs-use-case/monitoring"
d "github.com/karincake/dodol"
rw "github.com/karincake/risoles"
)
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)
}
pValue2 := rw.ValidateString(w, "serviceType", r.PathValue("serviceType"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "serviceType is required"}, nil)
}
dto.ReferenceType = e.RTVisit
dto.PathValue1 = pValue1
dto.PathValue2 = pValue2
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
pValue2 := rw.ValidateString(w, "startDate", r.PathValue("startDate"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, 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)
}
dto.ReferenceType = e.RTHist
dto.PathValue1 = pValue1
dto.PathValue2 = pValue2
dto.PathValue3 = pValue3
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
@@ -1,124 +0,0 @@
package reference
import (
"net/http"
e "simrs-vx/internal/domain/bpjs-entities/reference"
u "simrs-vx/internal/use-case/bpjs-use-case/reference"
d "github.com/karincake/dodol"
rw "github.com/karincake/risoles"
)
func GetListProvince(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
dto.ReferenceType = e.RTProvince
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
dto.ReferenceType = e.RTCities
dto.PathValue1 = pValue
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
dto.ReferenceType = e.RTDistrict
dto.PathValue1 = pValue
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
dto.ReferenceType = e.RTDiagnose
dto.PathValue1 = pValue
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
func GetListDiagnosePrb(w http.ResponseWriter, r *http.Request) {
dto := e.ReadListDto{}
dto.ReferenceType = e.RTDiagnosePrb
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
dto.ReferenceType = e.RTMedicinePrb
dto.PathValue1 = pValue
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
dto.ReferenceType = e.RTUnit
dto.PathValue1 = pValue
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
pValue2 := rw.ValidateString(w, "healthcareType", r.PathValue("healthcareType"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, d.IS{"message": "healthcareType is required"}, nil)
}
dto.ReferenceType = e.RTHealthcare
dto.PathValue1 = pValue1
dto.PathValue2 = pValue2
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
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)
}
pValue2 := rw.ValidateString(w, "serviceDate", r.PathValue("serviceDate"))
if pValue2 == "" {
rw.WriteJSON(w, http.StatusUnauthorized, 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)
}
dto.PathValue1 = pValue1
dto.PathValue2 = pValue2
dto.PathValue3 = pValue3
dto.ReferenceType = e.RTDoctor
res, err := u.ReadList(dto)
rw.DataResponse(w, res, err)
}
@@ -1,22 +0,0 @@
package vclaimsephist
import (
"net/http"
e "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-hist"
u "simrs-vx/internal/use-case/bpjs-use-case/vclaim-sep-hist"
rw "github.com/karincake/risoles"
sf "github.com/karincake/semprit"
)
type myBase struct{}
var O myBase
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)
}
@@ -1,23 +0,0 @@
package vclaimsepprint
import (
"net/http"
e "simrs-vx/internal/domain/bpjs-entities/vclaim-sep-print"
u "simrs-vx/internal/use-case/bpjs-use-case/vclaim-sep-print"
rw "github.com/karincake/risoles"
)
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)
}
@@ -1,73 +0,0 @@
package vclaimsep
import (
"io"
"net/http"
rw "github.com/karincake/risoles"
e "simrs-vx/internal/domain/bpjs-entities/vclaim-sep"
u "simrs-vx/internal/use-case/bpjs-use-case/vclaim-sep"
)
type myBase struct{}
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)
return
}
defer r.Body.Close()
dto.RequestPayload = body
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) {
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 != "" {
return
}
dto := e.DeleteDto{}
dto.Number = &number
res, err := u.Delete(dto)
rw.DataResponse(w, res, err)
}