Merge pull request #136 from dikstub-rssa/fix/anything-moko

Fix/anything moko
This commit is contained in:
Dwi Atmoko Purbo Sakti
2025-11-11 11:24:39 +07:00
committed by GitHub
8 changed files with 31 additions and 23 deletions
@@ -8,7 +8,7 @@ import (
) )
type CreateDto struct { type CreateDto struct {
Code string `json:"code" validate:"maxLength=10"` Code *string `json:"code" validate:"maxLength=10"`
Name string `json:"name" validate:"maxLength=50"` Name string `json:"name" validate:"maxLength=50"`
EncounterClass_Code ere.EncounterClassCode `json:"encounterClass_code" validate:"maxLength=10"` EncounterClass_Code ere.EncounterClassCode `json:"encounterClass_code" validate:"maxLength=10"`
} }
@@ -21,25 +21,26 @@ type ReadListDto struct {
} }
type FilterDto struct { type FilterDto struct {
Code string `json:"code"` Code *string `json:"code"`
Name string `json:"name"` Name *string `json:"name"`
EncounterClass_Code ere.EncounterClassCode `json:"encounterClass-code"` EncounterClass_Code ere.EncounterClassCode `json:"encounterClass-code"`
Search string `json:"search" gormhelper:"searchColumns=Code,Name"` Search string `json:"search" gormhelper:"searchColumns=Code,Name"`
} }
type ReadDetailDto struct { type ReadDetailDto struct {
Id uint16 `json:"id"` Id *uint16 `json:"id"`
Code *string `json:"code"` Code *string `json:"code"`
Includes string `json:"includes"` Includes string `json:"includes"`
} }
type UpdateDto struct { type UpdateDto struct {
Id uint16 `json:"id"` Id *uint16 `json:"id"`
CreateDto CreateDto
} }
type DeleteDto struct { type DeleteDto struct {
Id uint16 `json:"id"` Id *uint16 `json:"id"`
Code *string `json:"code"`
} }
type MetaDto struct { type MetaDto struct {
@@ -33,21 +33,21 @@ func (obj myBase) GetList(w http.ResponseWriter, r *http.Request) {
} }
func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) { func (obj myBase) GetDetail(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id")) code := rw.ValidateString(w, "code", r.PathValue("code"))
if id <= 0 { if code == "" {
return return
} }
dto := e.ReadDetailDto{} dto := e.ReadDetailDto{}
sf.UrlQueryParam(&dto, *r.URL) sf.UrlQueryParam(&dto, *r.URL)
dto.Id = uint16(id) dto.Code = &code
res, err := u.ReadDetail(dto) res, err := u.ReadDetail(dto)
rw.DataResponse(w, res, err) rw.DataResponse(w, res, err)
} }
func (obj myBase) Update(w http.ResponseWriter, r *http.Request) { func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id")) code := rw.ValidateString(w, "code", r.PathValue("code"))
if id <= 0 { if code == "" {
return return
} }
@@ -55,19 +55,19 @@ func (obj myBase) Update(w http.ResponseWriter, r *http.Request) {
if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res { if res := rw.ValidateStructByIOR(w, r.Body, &dto); !res {
return return
} }
dto.Id = uint16(id) dto.Code = &code
res, err := u.Update(dto) res, err := u.Update(dto)
rw.DataResponse(w, res, err) rw.DataResponse(w, res, err)
} }
func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) { func (obj myBase) Delete(w http.ResponseWriter, r *http.Request) {
id := rw.ValidateInt(w, "id", r.PathValue("id")) code := rw.ValidateString(w, "code", r.PathValue("code"))
if id <= 0 { if code == "" {
return return
} }
dto := e.DeleteDto{} dto := e.DeleteDto{}
dto.Id = uint16(id) dto.Code = &code
res, err := u.Delete(dto) res, err := u.Delete(dto)
rw.DataResponse(w, res, err) rw.DataResponse(w, res, err)
} }
@@ -166,7 +166,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
} }
func Update(input e.UpdateDto) (*d.Data, error) { func Update(input e.UpdateDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: input.Id} rdDto := e.ReadDetailDto{Code: input.Code}
var data *e.Installation var data *e.Installation
var err error var err error
@@ -222,7 +222,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
} }
func Delete(input e.DeleteDto) (*d.Data, error) { func Delete(input e.DeleteDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: input.Id} rdDto := e.ReadDetailDto{Code: input.Code}
var data *e.Installation var data *e.Installation
var err error var err error
@@ -17,7 +17,7 @@ func setData[T *e.CreateDto | *e.UpdateDto](input T, data *e.Installation) {
inputSrc = &inputTemp.CreateDto inputSrc = &inputTemp.CreateDto
} }
data.Code = inputSrc.Code data.Code = *inputSrc.Code
data.Name = inputSrc.Name data.Name = inputSrc.Name
data.EncounterClass_Code = inputSrc.EncounterClass_Code data.EncounterClass_Code = inputSrc.EncounterClass_Code
} }
@@ -81,9 +81,16 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
tx = dg.I tx = dg.I
} }
if input.Code != nil {
tx = tx.Where("\"Code\" = ?", *input.Code)
}
if input.Id != nil {
tx = tx.Where("\"Id\" = ?", *input.Id)
}
if err := tx. if err := tx.
Scopes(gh.Preload(input.Includes)). Scopes(gh.Preload(input.Includes)).
First(&data, input.Id).Error; err != nil { First(&data).Error; err != nil {
if processedErr := pu.HandleReadError(err, event, source, input.Id, data); processedErr != nil { if processedErr := pu.HandleReadError(err, event, source, input.Id, data); processedErr != nil {
return nil, processedErr return nil, processedErr
} }
@@ -175,7 +175,7 @@ func ReadDetail(input e.ReadDetailDto) (*d.Data, error) {
} }
func Update(input e.UpdateDto) (*d.Data, error) { func Update(input e.UpdateDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: input.Id} rdDto := e.ReadDetailDto{Code: &input.Code}
var data *e.SpecialistPosition var data *e.SpecialistPosition
var err error var err error
@@ -235,7 +235,7 @@ func Update(input e.UpdateDto) (*d.Data, error) {
} }
func Delete(input e.DeleteDto) (*d.Data, error) { func Delete(input e.DeleteDto) (*d.Data, error) {
rdDto := e.ReadDetailDto{Id: input.Id} rdDto := e.ReadDetailDto{Code: input.Code}
var data *e.SpecialistPosition var data *e.SpecialistPosition
var err error var err error
@@ -86,7 +86,7 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
case input.Id != nil: case input.Id != nil:
getData = tx.First(&data, input.Id) getData = tx.First(&data, input.Id)
case input.Code != nil && *input.Code != "": case input.Code != nil && *input.Code != "":
getData = tx.Where("code = ?", *input.Code).First(&data) getData = tx.Where("\"Code\" = ?", *input.Code).First(&data)
default: default:
event.Status = "failed" event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{ event.ErrInfo = pl.ErrorInfo{
@@ -86,7 +86,7 @@ func ReadDetailData(input e.ReadDetailDto, event *pl.Event, dbx ...*gorm.DB) (*e
case input.Id != nil: case input.Id != nil:
getData = tx.First(&data, input.Id) getData = tx.First(&data, input.Id)
case input.Code != nil && *input.Code != "": case input.Code != nil && *input.Code != "":
getData = tx.Where("code = ?", *input.Code).First(&data) getData = tx.Where("\"Code\" = ?", *input.Code).First(&data)
default: default:
event.Status = "failed" event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{ event.ErrInfo = pl.ErrorInfo{