diff --git a/src/module/pendaftaran/internal/repository/pendaftaran.go b/src/module/pendaftaran/internal/repository/pendaftaran.go index d9ea29b8b7fa766652e619d1f47a08c46ec4a593..62c8e44eb34494ab1e6090b5d48bada20f0475e2 100644 --- a/src/module/pendaftaran/internal/repository/pendaftaran.go +++ b/src/module/pendaftaran/internal/repository/pendaftaran.go @@ -61,39 +61,42 @@ func (repo *PendaftaranRepo) GetPendaftaranByIdDosen(id string) (output []models return pendaftaran, nil } -func (repo *PendaftaranRepo) GetPendaftaranById(id string) (output entity.PendaftaranGetResponse, err error) { - var pendaftaran models.PendaftaranTA +func (repo *PendaftaranRepo) GetPendaftaranById(id string) (output []entity.PendaftaranGetResponse, err error) { + var pendaftaran []models.PendaftaranTA var dosen models.Pengguna - var data entity.PendaftaranGetResponse - var status string + var data []entity.PendaftaranGetResponse var topik models.Topik - res := repo.DBRead.Where("id_mahasiswa = ?", id).Find(&pendaftaran).Limit(1) - if res.Error != nil { - return data, res.Error - } - - res = repo.DBRead.Where("id = ?", pendaftaran.IdDosen).Find(&dosen).Limit(1) - if res.Error != nil { - return data, res.Error - } - - res = repo.DBRead.Where("id = ?", pendaftaran.IdTopik).Find(&topik).Limit(1) + res := repo.DBRead.Where("id_mahasiswa = ?", id).Find(&pendaftaran) if res.Error != nil { return data, res.Error } - data = entity.PendaftaranGetResponse{ - Id: pendaftaran.ID, - Status: status, - InterviewAt: pendaftaran.InterviewAt, - DecidedAt: pendaftaran.DecidedAt, - WaktuPengiriman: pendaftaran.WaktuPengiriman, - Judul: topik.Judul, - Deskripsi: topik.Deskripsi, - IdDosen: pendaftaran.IdDosen, - NamaDosen: dosen.Nama, - EmailDosen: dosen.Email, + for _, pen := range pendaftaran { + res = repo.DBRead.Where("id = ?", pen.IdDosen).Find(&dosen).Limit(1) + if res.Error != nil { + return data, res.Error + } + + res = repo.DBRead.Where("id = ?", pen.IdTopik).Find(&topik).Limit(1) + if res.Error != nil { + return data, res.Error + } + + var dataTemp = entity.PendaftaranGetResponse{ + Id: pen.ID, + Status: string(pen.Status), + InterviewAt: pen.InterviewAt, + DecidedAt: pen.DecidedAt, + WaktuPengiriman: pen.WaktuPengiriman, + Judul: topik.Judul, + Deskripsi: topik.Deskripsi, + IdDosen: pen.IdDosen, + NamaDosen: dosen.Nama, + EmailDosen: dosen.Email, + } + + data = append(data, dataTemp) } if res.Error != nil { diff --git a/src/module/pendaftaran/internal/usecase/pendaftaran.go b/src/module/pendaftaran/internal/usecase/pendaftaran.go index 13883e5cae5556ee8a9b6960f58f81232c5b6df4..be53ada75a1c9bb428239cb8a4911ea0c8dbfb10 100644 --- a/src/module/pendaftaran/internal/usecase/pendaftaran.go +++ b/src/module/pendaftaran/internal/usecase/pendaftaran.go @@ -15,7 +15,7 @@ type PendaftaranUsecase interface { UpdateStatusPendaftaran(id string, val string) (output []models.PendaftaranTA, err error) UpdateWaktuInterview(id string, val time.Time) (output []models.PendaftaranTA, err error) GetPendaftaranByPeriode(id string) (output []models.PendaftaranTA, err error) - GetPendaftaranById(id string) (output entity.PendaftaranGetResponse, err error) + GetPendaftaranById(id string) (output []entity.PendaftaranGetResponse, err error) } type PendaftaranUc struct { @@ -63,6 +63,6 @@ func (uc *PendaftaranUc) GetPendaftaranByPeriode(id string) (output []models.Pen return uc.pendaftaranRepo.GetPendaftaranByPeriode(id) } -func (uc *PendaftaranUc) GetPendaftaranById(id string) (output entity.PendaftaranGetResponse, err error) { +func (uc *PendaftaranUc) GetPendaftaranById(id string) (output []entity.PendaftaranGetResponse, err error) { return uc.pendaftaranRepo.GetPendaftaranById(id) } diff --git a/src/module/pendaftaran/internal/usecase/repository.go b/src/module/pendaftaran/internal/usecase/repository.go index fcd4a7344face1987f659ff8c2935ad715a950ed..a647e3bf12e06407f1d2418f4e4444384a74e88c 100644 --- a/src/module/pendaftaran/internal/usecase/repository.go +++ b/src/module/pendaftaran/internal/usecase/repository.go @@ -15,5 +15,5 @@ type PendaftaranRepository interface { SetStatus(id string, val string) (output []models.PendaftaranTA, err error) SetTimeInterview(id string, val time.Time) (output []models.PendaftaranTA, err error) GetPendaftaranByPeriode(idPeriode string) (output []models.PendaftaranTA, err error) - GetPendaftaranById(id string) (output entity.PendaftaranGetResponse, err error) + GetPendaftaranById(id string) (output []entity.PendaftaranGetResponse, err error) }