feat (patient): crud untested yet

This commit is contained in:
dpurbosakti
2025-09-02 18:10:17 +07:00
parent 2d76730feb
commit 16f4869d86
11 changed files with 835 additions and 40 deletions

No files matched your search

@@ -12,17 +12,19 @@ import (
ud "simrs-vx/internal/use-case/main-use-case/doctor"
un "simrs-vx/internal/use-case/main-use-case/nurse"
ut "simrs-vx/internal/use-case/main-use-case/nutritionist"
upe "simrs-vx/internal/use-case/main-use-case/person"
upa "simrs-vx/internal/use-case/main-use-case/person-address"
upc "simrs-vx/internal/use-case/main-use-case/person-contact"
up "simrs-vx/internal/use-case/main-use-case/pharmacist"
ero "simrs-vx/internal/domain/references/organization"
dg "github.com/karincake/apem/db-gorm-pg"
d "github.com/karincake/dodol"
pl "simrs-vx/pkg/logger"
pu "simrs-vx/pkg/use-case-helper"
dg "github.com/karincake/apem/db-gorm-pg"
d "github.com/karincake/dodol"
"gorm.io/gorm"
)
@@ -47,8 +49,10 @@ func Create(input e.CreateDto) (*d.Data, error) {
return err
}
if err := createOrUpdatePerson(&input, &event, tx); err != nil {
if person_id, err := upe.CreateOrUpdatePerson(input.Person, &event, tx); err != nil {
return err
} else {
input.Person_Id = person_id
}
for idx := range input.PersonAddresses {
@@ -265,8 +269,10 @@ func Update(input e.UpdateDto) (*d.Data, error) {
return err
}
if err := createOrUpdatePerson(&input.CreateDto, &event, tx); err != nil {
if person_id, err := upe.CreateOrUpdatePerson(input.Person, &event, tx); err != nil {
return err
} else {
input.Person_Id = person_id
}
for idx := range input.PersonAddresses {
@@ -7,12 +7,8 @@ package employee
import (
"errors"
e "simrs-vx/internal/domain/main-entities/employee"
ep "simrs-vx/internal/domain/main-entities/person"
"strconv"
up "simrs-vx/internal/use-case/main-use-case/person"
uu "simrs-vx/internal/use-case/main-use-case/user"
pl "simrs-vx/pkg/logger"
"gorm.io/gorm"
@@ -52,35 +48,3 @@ func createUser(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
input.User_Id = &user.Id
return nil
}
func createOrUpdatePerson(input *e.CreateDto, event *pl.Event, tx *gorm.DB) error {
if input.Person.Id == 0 {
person, err := up.CreateData(input.Person.CreateDto, event, tx)
if err != nil {
return err
}
input.Person_Id = &person.Id
return nil
}
person, err := up.ReadDetailData(ep.ReadDetailDto{Id: input.Person.Id}, event, tx)
if err != nil {
return err
}
if person == nil {
event.Status = "failed"
event.ErrInfo = pl.ErrorInfo{
Code: "data-notFound",
Detail: "person with ID " + strconv.Itoa(int(*input.Person_Id)) + " not found",
Raw: errors.New("person with ID " + strconv.Itoa(int(*input.Person_Id)) + " not found"),
}
return pl.SetLogError(event, input)
}
if err := up.UpdateData(ep.UpdateDto{CreateDto: input.Person.CreateDto}, person, event, tx); err != nil {
return err
}
input.Person_Id = &person.Id
return nil
}