diff --git a/internal/domain/reference/dokter/dokter_test.go b/internal/domain/reference/dokter/dokter_test.go index 9c37ea6..38fd134 100644 --- a/internal/domain/reference/dokter/dokter_test.go +++ b/internal/domain/reference/dokter/dokter_test.go @@ -1,6 +1,7 @@ package dokter import ( + "antrian-operasi/internal/shared" "database/sql" "testing" ) @@ -11,15 +12,15 @@ func TestParsingDokter(t *testing.T) { expected string }{ { - data: DokterModel{NamaDepan: "Agus", NamaBelakang: "Bayu"}, + data: DokterModel{NamaDepan: shared.NullString("Agus"), NamaBelakang: shared.NullString("Bayu")}, expected: "AGUS BAYU", }, { - data: DokterModel{NamaDepan: "Chandra", NamaBelakang: "Dinata"}, + data: DokterModel{NamaDepan: shared.NullString("Chandra"), NamaBelakang: shared.NullString("Dinata")}, expected: "CHANDRA DINATA", }, { - data: DokterModel{NamaDepan: "Eka", NamaBelakang: "Fahmi"}, + data: DokterModel{NamaDepan: shared.NullString("Eka"), NamaBelakang: shared.NullString("Fahmi")}, expected: "EKA FAHMI", }, } @@ -37,9 +38,9 @@ func TestParsingDokter(t *testing.T) { func TestParsingListDokter(t *testing.T) { listModel := ListDokterModel{ - DokterModel{"test-id-1", "test-nip-1", "A", "B", sql.NullString{}, "test-ksm-1"}, - DokterModel{"test-id-2", "test-nip-2", "C", "D", sql.NullString{}, "test-ksm-2"}, - DokterModel{"test-id-3", "test-nip-3", "E", "F", sql.NullString{}, "test-ksm-3"}, + DokterModel{"test-id-1", "test-nip-1", shared.NullString("A"), shared.NullString("B"), sql.NullString{}, "test-ksm-1"}, + DokterModel{"test-id-2", "test-nip-2", shared.NullString("C"), shared.NullString("D"), sql.NullString{}, "test-ksm-2"}, + DokterModel{"test-id-3", "test-nip-3", shared.NullString("E"), shared.NullString("F"), sql.NullString{}, "test-ksm-3"}, } t.Run("test length model list and list response", func(t *testing.T) { diff --git a/internal/domain/reference/dokter/model.go b/internal/domain/reference/dokter/model.go index d95df2e..4819cdb 100644 --- a/internal/domain/reference/dokter/model.go +++ b/internal/domain/reference/dokter/model.go @@ -8,8 +8,8 @@ import ( type DokterModel struct { ID string `json:"id" db:"id"` Nip string `json:"nip" db:"nip"` - NamaDepan string `json:"nama_depan" db:"nama_depan"` - NamaBelakang string `json:"nama_belakang" db:"nama_belakang"` + NamaDepan sql.NullString `json:"nama_depan" db:"nama_depan"` + NamaBelakang sql.NullString `json:"nama_belakang" db:"nama_belakang"` HfisCode sql.NullString `json:"hfis_code" db:"hfis_code"` NamaKsm string `json:"nama_ksm" db:"nama_ksm"` } diff --git a/internal/domain/reference/dokter/repository.go b/internal/domain/reference/dokter/repository.go index fa1bb74..62751ce 100644 --- a/internal/domain/reference/dokter/repository.go +++ b/internal/domain/reference/dokter/repository.go @@ -106,7 +106,7 @@ func (r dokterRepo) SearchableListDokter(c *gin.Context) (ListDokterModelPaginat dbconn, err := r.db.GetSQLXDB(DB_NAME) if err != nil { // log.Fatalf("unable to connect db %s", err) - return result, nil + return result, err } // query count @@ -128,7 +128,7 @@ func (r dokterRepo) SearchableListDokter(c *gin.Context) (ListDokterModelPaginat c, dbconn, queryData, &result.Data) if err != nil { // log.Fatalf("unable to execute query %s", err) - return result, nil + return result, err } return result, nil diff --git a/internal/domain/reference/dokter/response.go b/internal/domain/reference/dokter/response.go index 2c4eeab..a0e4257 100644 --- a/internal/domain/reference/dokter/response.go +++ b/internal/domain/reference/dokter/response.go @@ -11,7 +11,7 @@ func DokterRowToResponse(row DokterModel) DokterResponse { return DokterResponse{ ID: row.ID, Nip: row.Nip, - NamaLengkap: strings.ToUpper(row.NamaDepan) + " " + strings.ToUpper(row.NamaBelakang), + NamaLengkap: strings.ToUpper(row.NamaDepan.String) + " " + strings.ToUpper(row.NamaBelakang.String), HfisCode: hfis, NamaKsm: row.NamaKsm, } diff --git a/internal/shared/typeHelper.go b/internal/shared/typeHelper.go new file mode 100644 index 0000000..cc87d0c --- /dev/null +++ b/internal/shared/typeHelper.go @@ -0,0 +1,10 @@ +package shared + +import "database/sql" + +func NullString(s string) sql.NullString { + return sql.NullString{ + String: s, + Valid: true, + } +}