diff --git a/internal/interface/main-handler/encounter/handler.go b/internal/interface/main-handler/encounter/handler.go index a5e74855..ed8b1fbc 100644 --- a/internal/interface/main-handler/encounter/handler.go +++ b/internal/interface/main-handler/encounter/handler.go @@ -2,7 +2,6 @@ package encounter import ( "net/http" - "time" rw "github.com/karincake/risoles" sf "github.com/karincake/semprit" @@ -125,13 +124,6 @@ func (obj myBase) CheckIn(w http.ResponseWriter, r *http.Request) { } dto.Id = uint(id) - - // validate startedAt - if dto.StartedAt == nil { - now := time.Now() - dto.StartedAt = &now - } - res, err := u.CheckIn(dto) rw.DataResponse(w, res, err) } diff --git a/internal/use-case/main-use-case/encounter/case.go b/internal/use-case/main-use-case/encounter/case.go index d1124b3e..11b17e2b 100644 --- a/internal/use-case/main-use-case/encounter/case.go +++ b/internal/use-case/main-use-case/encounter/case.go @@ -574,10 +574,17 @@ func CheckIn(input e.CheckinDto) (*d.Data, error) { return nil, err } + // set startedAt + if input.StartedAt == nil { + input.StartedAt = &now + } + + // validate if soapi exist dataSoapi, err := us.ReadList(es.ReadListDto{FilterDto: es.FilterDto{Encounter_Id: &input.Id}}) if err != nil { return nil, err } + if list, ok := dataSoapi.Data.([]es.ResponseDto); ok { if len(list) > 0 { event.Status = "failed" @@ -640,6 +647,7 @@ func CheckIn(input e.CheckinDto) (*d.Data, error) { } } + // update encounter data if err := updateCheckInData(input, data, &event, tx); err != nil { return err }