diff --git a/internal/use-case/simgos-sync-use-case/seeder/doctor/seeder.go b/internal/use-case/simgos-sync-use-case/seeder/doctor/seeder.go index e63b1503..63626d16 100644 --- a/internal/use-case/simgos-sync-use-case/seeder/doctor/seeder.go +++ b/internal/use-case/simgos-sync-use-case/seeder/doctor/seeder.go @@ -3,7 +3,6 @@ package doctor import ( "encoding/json" "fmt" - "log" "net/http" @@ -19,16 +18,26 @@ import ( epr "simrs-vx/internal/domain/main-entities/person" es "simrs-vx/internal/domain/main-entities/user" + ed "simrs-vx/internal/domain/simgos-entities/m-dokter" + el "simrs-vx/internal/domain/simgos-entities/m-login" + ee "simrs-vx/internal/domain/simgos-entities/m-pegawai" + ud "simrs-vx/internal/use-case/simgos-sync-use-case/new/doctor" ) +type user struct { + Login el.MLogin `gorm:"embedded"` + Doctor ed.MDokter `gorm:"embedded"` + Employee ee.MPegawai `gorm:"embedded"` +} + func SeedDoctor() error { log.Println("=== START SeedDoctor ===") tx := db.NewTx() - var users []seeder.User + var users []user log.Println("Querying SIMRS doctors...") diff --git a/internal/use-case/simgos-sync-use-case/seeder/helper.go b/internal/use-case/simgos-sync-use-case/seeder/helper.go index 15d242bd..b9b7336f 100644 --- a/internal/use-case/simgos-sync-use-case/seeder/helper.go +++ b/internal/use-case/simgos-sync-use-case/seeder/helper.go @@ -7,20 +7,9 @@ import ( "io" "net/http" es "simrs-vx/internal/domain/main-entities/user" - ed "simrs-vx/internal/domain/simgos-entities/m-dokter" - el "simrs-vx/internal/domain/simgos-entities/m-login" - ep "simrs-vx/internal/domain/simgos-entities/m-pegawai" - epr "simrs-vx/internal/domain/simgos-entities/m-perawat" cfg "simrs-vx/internal/infra/sync-cfg" ) -type User struct { - Login el.MLogin `gorm:"embedded"` - Nurse epr.MPerawat `gorm:"embedded"` - Doctor ed.MDokter `gorm:"embedded"` - Employee ep.MPegawai `gorm:"embedded"` -} - func Send(method string, endpoint string, body *bytes.Buffer, username string) ([]byte, error) { var url string = cfg.O.NewHost + "v1/" + endpoint var reader io.Reader = nil diff --git a/internal/use-case/simgos-sync-use-case/seeder/nurse/seeder.go b/internal/use-case/simgos-sync-use-case/seeder/nurse/seeder.go index 16f07b36..8f1732ff 100644 --- a/internal/use-case/simgos-sync-use-case/seeder/nurse/seeder.go +++ b/internal/use-case/simgos-sync-use-case/seeder/nurse/seeder.go @@ -6,6 +6,7 @@ import ( "log" "math/rand" "net/http" + "simrs-vx/internal/use-case/simgos-sync-use-case/seeder" pl "simrs-vx/pkg/logger" "strconv" @@ -15,25 +16,33 @@ import ( erg "simrs-vx/internal/domain/references/organization" - en "simrs-vx/internal/domain/main-entities/nurse" + enr "simrs-vx/internal/domain/main-entities/nurse" epr "simrs-vx/internal/domain/main-entities/person" es "simrs-vx/internal/domain/main-entities/user" + el "simrs-vx/internal/domain/simgos-entities/m-login" + en "simrs-vx/internal/domain/simgos-entities/m-perawat" + un "simrs-vx/internal/use-case/simgos-sync-use-case/new/nurse" ) +type user struct { + el.MLogin + en.MPerawat +} + func SeedNurse() error { log.Println("=== START SeedNurse ===") tx := db.NewTx() - var users []seeder.User + var users []user log.Println("Querying SIMRS nurses...") err := tx.Simgos.Table("m_perawat"). - Select("m_perawat.*, l.*"). + Select("m_perawat.idperawat, m_perawat.nama, l.*"). Joins("LEFT JOIN m_login l ON l.kdperawat = m_perawat.idperawat"). Where("l.roles = ?", 4). Order("m_perawat.idperawat DESC"). @@ -49,19 +58,18 @@ func SeedNurse() error { // mapping for i, d := range users { - log.Printf("[%d/%d] Processing nurse KdPerawat=%d ...", i+1, len(users), d.Nurse.NIP) + log.Printf("[%d/%d] Processing nurse KdPerawat=%d ...", i+1, len(users), d.Idperawat) - kdprawat := strconv.Itoa(int(*d.Nurse.Idperawat)) + kdprawat := strconv.Itoa(int(*d.Idperawat)) nik := GenerateDummyNIK("F") nursesimx := es.CreateDto{ - Name: d.Login.NIP, + Name: d.MLogin.NIP, Password: "1234", ContractPosition_Code: erg.CSCEmp, Code: &kdprawat, Person: &epr.UpdateDto{ CreateDto: epr.CreateDto{ - Name: d.Employee.NamaPeg, - BirthPlace: &d.Employee.TempatLahir, + Name: d.NamaPegawai, ResidentIdentityNumber: &nik, }, }, @@ -70,16 +78,20 @@ func SeedNurse() error { }, } - log.Printf("[%d] Creating User for NIP=%s ...", i+1, d.Login.NIP) + log.Printf("[%d] Creating User for NIP=%v ...", i+1, d.Idperawat) + + if i == 0 { + continue + } // create user - user, err := seeder.CreateUser(nursesimx) + userData, err := seeder.CreateUser(nursesimx) if err != nil { log.Println("Error createUser:", err) return err } - log.Printf("[%d] User created: ID=%d", i+1, user.Id) + log.Printf("[%d] User created: ID=%d", i+1, userData.Id) log.Printf("[%d] Fetching nurse with code=%s ...", i+1, kdprawat) // get nurse @@ -92,8 +104,8 @@ func SeedNurse() error { data := *dataNurse ddata := data[0] - log.Printf("[%d] Linking nurse %d to %d ...", i+1, ddata.Id, d.Nurse.Idperawat) - if _, err := un.CreateLinkData(ddata.Id, *d.Nurse.Idperawat, &pl.Event{}); err != nil { + log.Printf("[%d] Linking nurse %d to %s ...", i+1, ddata.Id, kdprawat) + if _, err := un.CreateLinkData(ddata.Id, *d.Idperawat, &pl.Event{}); err != nil { return err } @@ -106,7 +118,7 @@ func SeedNurse() error { } -func getNurse(code string) (*[]en.Nurse, error) { +func getNurse(code string) (*[]enr.Nurse, error) { path := fmt.Sprintf("nurse?code=%s", code) resp, err := seeder.Send(http.MethodGet, path, nil, "von") @@ -121,8 +133,8 @@ func getNurse(code string) (*[]en.Nurse, error) { } type MainApiResp struct { - Meta MetaData `json:"meta"` - Data []en.Nurse `json:"data"` + Meta MetaData `json:"meta"` + Data []enr.Nurse `json:"data"` } // getting response