From a4cf4727bf74883b36429a2b4bb30c40ffb98caa Mon Sep 17 00:00:00 2001 From: Alex Sander <13521061@std.stei.itb.ac.id> Date: Thu, 23 May 2024 22:02:24 +0700 Subject: [PATCH] fix: refactor and wiring pendaftaran --- .../internal/repository/pendaftaran.go | 55 ++++++++++--------- .../internal/usecase/pendaftaran.go | 4 +- .../internal/usecase/repository.go | 2 +- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/module/pendaftaran/internal/repository/pendaftaran.go b/src/module/pendaftaran/internal/repository/pendaftaran.go index d9ea29b..62c8e44 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 13883e5..be53ada 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 fcd4a73..a647e3b 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) } -- GitLab