From 1dad72d2f303cb26b5e412795afd97d5f687fa3b Mon Sep 17 00:00:00 2001 From: arieljovananda88 <jovanandaa@gmail.com> Date: Mon, 27 May 2024 10:15:33 +0700 Subject: [PATCH] fix: able to remove all dosuji --- .../internal/repository/pendaftaran_sidsem.go | 7 +++++++ .../internal/usecase/pendaftaran_sidsem.go | 13 ++++++++++--- .../internal/usecase/repository.go | 1 + 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go index e6497a2..57ff22b 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 f540e58..cfe2a6e 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 c4caf27..3020235 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 } -- GitLab