diff --git a/internal/domain/antrian_operasi/repository.go b/internal/domain/antrian_operasi/repository.go index c5f265c..ec952a5 100644 --- a/internal/domain/antrian_operasi/repository.go +++ b/internal/domain/antrian_operasi/repository.go @@ -65,35 +65,37 @@ func (r antrianOperasiRepo) insertAntrianChildTables(c *gin.Context, tx *sql.Tx, } // INSERT data_telepon_pasien_operasi - var valuesInsertTelepon [][]interface{} + if len(req.FormData.NoTelepon) != 0 { + var valuesInsertTelepon [][]interface{} - for _, telp := range req.FormData.NoTelepon { - idTelepon := uuid.New().String() - itemValues := []interface{}{idTelepon, telp, idAntrian} - valuesInsertTelepon = append(valuesInsertTelepon, itemValues) - } + for _, telp := range req.FormData.NoTelepon { + idTelepon := uuid.New().String() + itemValues := []interface{}{idTelepon, telp, idAntrian} + valuesInsertTelepon = append(valuesInsertTelepon, itemValues) + } - insertTeleponQuery := queryUtils.InsertBulkData{ - Columns: []string{ - "id", - "\"Nomor_telepon\"", - "\"FK_pasien_operasi_telepon_pasien_operasi_ID\"", - }, - Values: valuesInsertTelepon, - } + insertTeleponQuery := queryUtils.InsertBulkData{ + Columns: []string{ + "id", + "\"Nomor_telepon\"", + "\"FK_pasien_operasi_telepon_pasien_operasi_ID\"", + }, + Values: valuesInsertTelepon, + } - sql, args, err := r.queryBuilder.BuildBulkInsertQuery(TBL_PASIEN_TELEPHONE, insertTeleponQuery, returningCols...) - if err != nil { - log.Printf("error building query telepon %s", err) + sql, args, err := r.queryBuilder.BuildBulkInsertQuery(TBL_PASIEN_TELEPHONE, insertTeleponQuery, returningCols...) + if err != nil { + log.Printf("error building query telepon %s", err) - return err + return err + } + _, err = tx.ExecContext(c, sql, args...) + if err != nil { + log.Println(err) + return err + } + log.Printf("success insert telepon") } - _, err = tx.ExecContext(c, sql, args...) - if err != nil { - log.Println(err) - return err - } - log.Printf("success insert telepon") // INSERT data_diagnosa_pasien_operasi var valuesDiagnosa [][]interface{} @@ -121,7 +123,7 @@ func (r antrianOperasiRepo) insertAntrianChildTables(c *gin.Context, tx *sql.Tx, Values: valuesDiagnosa, } - sql, args, err = r.queryBuilder.BuildBulkInsertQuery(TBL_DIAGNOSA_OPERASI, insertDiagnosaQuery, returningCols...) + sql, args, err := r.queryBuilder.BuildBulkInsertQuery(TBL_DIAGNOSA_OPERASI, insertDiagnosaQuery, returningCols...) if err != nil { log.Printf("error building query diagnosa %s", err) return err @@ -172,33 +174,35 @@ func (r antrianOperasiRepo) insertAntrianChildTables(c *gin.Context, tx *sql.Tx, log.Printf("success insert tindakan") // INSERT data_pasien_operasi_data_pegawai - var valuesDokterPelaksana [][]interface{} + if len(req.DokterPelaksanaItems) != 0 { + var valuesDokterPelaksana [][]interface{} - for _, dokter := range req.DokterPelaksanaItems { - itemValues := []interface{}{ - idAntrian, - dokter.Id, + for _, dokter := range req.DokterPelaksanaItems { + itemValues := []interface{}{ + idAntrian, + dokter.Id, + } + valuesDokterPelaksana = append(valuesDokterPelaksana, itemValues) } - valuesDokterPelaksana = append(valuesDokterPelaksana, itemValues) - } - insertDokterPelaksanaQuery := queryUtils.InsertBulkData{ - Columns: []string{ - "\"data_pasien_operasi_id\"", - "\"data_pegawai_id\"", - }, - Values: valuesDokterPelaksana, - } + insertDokterPelaksanaQuery := queryUtils.InsertBulkData{ + Columns: []string{ + "\"data_pasien_operasi_id\"", + "\"data_pegawai_id\"", + }, + Values: valuesDokterPelaksana, + } - sql, args, err = r.queryBuilder.BuildBulkInsertQuery(TBL_DOKTER_OPERASI, insertDokterPelaksanaQuery, returningCols...) - if err != nil { - log.Printf("error building query dokter pelaksana %s", err) - return err - } - _, err = tx.ExecContext(c, sql, args...) - if err != nil { - log.Println(err) - return err + sql, args, err = r.queryBuilder.BuildBulkInsertQuery(TBL_DOKTER_OPERASI, insertDokterPelaksanaQuery, returningCols...) + if err != nil { + log.Printf("error building query dokter pelaksana %s", err) + return err + } + _, err = tx.ExecContext(c, sql, args...) + if err != nil { + log.Println(err) + return err + } } return nil diff --git a/internal/domain/antrian_operasi/request.go b/internal/domain/antrian_operasi/request.go index 02c4823..8b64ee3 100644 --- a/internal/domain/antrian_operasi/request.go +++ b/internal/domain/antrian_operasi/request.go @@ -12,7 +12,7 @@ type FormDataRequest struct { TglLahir *string `json:"tanggalLahir"` Umur *string `json:"umur"` Alamat *string `json:"alamat"` - NoTelepon []string `json:"nomorTelepon" binding:"required,min=1"` + NoTelepon []string `json:"nomorTelepon"` } type DiagnosisItemRequest struct {