diff --git a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go index e6497a270c8ee7a70ac9db8cccd73d7055f0adb3..57ff22b6e2e55458ff15d4d6fb47845296d0a676 100644 --- a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go +++ b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go @@ -666,6 +666,13 @@ func (repo *PendaftaranSidSemRepo) DeleteDosujiSidsem(dosUjis []entity.Dosuji, i return nil } +func (repo *PendaftaranSidSemRepo) DeleteAllDosujiSidsem(idSidsem string) error { + if err := repo.DBWrite.Table("penguji_sidsem").Where("sidsem_id = ? ", idSidsem).Delete(&entity.PengujiSidsem{}).Error; err != nil { + return err + } + return nil +} + func (repo *PendaftaranSidSemRepo) UpdateDosujiSidsem(dosUjis []entity.PengujiSidsem, idSidsem string) error { if err := repo.DBWrite.Table("penguji_sidsem").Create(&dosUjis).Error; err != nil { return err diff --git a/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go index f540e58cc657df02aac02863e7c4015f89ee15a8..cfe2a6e34a1ec6d0f452fee23db5caa4e0337edf 100644 --- a/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go +++ b/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go @@ -302,9 +302,16 @@ func (uc *PendaftaranSidSemUc) GetDosuji(idPendaftaranSidSem string) ([]entity.D } func (uc *PendaftaranSidSemUc) UpdateDosujiSidsem(dosUjis []entity.Dosuji, idPendaftaranSidSem string) error { - err := uc.pendaftaransidsemrepo.DeleteDosujiSidsem(dosUjis, idPendaftaranSidSem) - if err != nil { - return err + if len(dosUjis) == 0 { + err := uc.pendaftaransidsemrepo.DeleteAllDosujiSidsem(idPendaftaranSidSem) + if err != nil { + return err + } + } else { + err := uc.pendaftaransidsemrepo.DeleteDosujiSidsem(dosUjis, idPendaftaranSidSem) + if err != nil { + return err + } } assignedDosUjis, err := uc.pendaftaransidsemrepo.GetDosujiByIdSidSem(idPendaftaranSidSem) diff --git a/src/module/pendaftaran_sidsem/internal/usecase/repository.go b/src/module/pendaftaran_sidsem/internal/usecase/repository.go index c4caf27e44988188d9f1376c05b5a00d73c17350..302023514d4de9750814d49819193fc74ee28cbe 100644 --- a/src/module/pendaftaran_sidsem/internal/usecase/repository.go +++ b/src/module/pendaftaran_sidsem/internal/usecase/repository.go @@ -34,6 +34,7 @@ type PendaftaranSidSemRepository interface { UpdateJadwalSidsem(waktuMulai string, waktuAkhir string, idSidsem string) error GetDosuji(idSidsem string) ([]entity.Dosuji, error) DeleteDosujiSidsem(dosUjis []entity.Dosuji, idSidsem string) error + DeleteAllDosujiSidsem(idSidsem string) error GetDosujiByIdSidSem(idSidsem string) ([]entity.PengujiSidsem, error) UpdateDosujiSidsem(dosUjis []entity.PengujiSidsem, idSidsem string) error }