diff --git a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go index 902eb66130babd5ca115a6c3b62a189cfb174c89..ba10eb2dc4969ccca0e2b17fe324a4b7dc915e1d 100644 --- a/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go +++ b/src/module/pendaftaran_sidsem/internal/repository/pendaftaran_sidsem.go @@ -90,6 +90,44 @@ func (repo *PendaftaranSidSemRepo) GetPendaftaranByPeriode(idPeriode string, off return dataJadwal, nil } +func (repo *PendaftaranSidSemRepo) GetPendaftaran(offset, size int) (output []entity.PendaftaranSidSemRequest, err error) { + var pendaftaransidsem []models.PendaftaranSidSem + var pendaftaranTA models.PendaftaranTA + var mahasiswa models.Pengguna + var dataJadwal []entity.PendaftaranSidSemRequest + result := repo.DBRead.Limit(size).Offset(offset).Find(&pendaftaransidsem) + + for _, jadwal := range pendaftaransidsem { + res := repo.DBRead.Where("id = ?", jadwal.PendaftaranTAID).Limit(1).Find(&pendaftaranTA) + if res.Error != nil { + return nil, res.Error + } + + res = repo.DBRead.Where("id = ?", pendaftaranTA.IdMahasiswa).Find(&mahasiswa) + if res.Error != nil { + return nil, res.Error + } + + data := entity.PendaftaranSidSemRequest{ + ID: jadwal.ID, + Nim: mahasiswa.NIM, + Nama: mahasiswa.Nama, + WaktuMulai: jadwal.WaktuMulai, + WaktuSelesai: jadwal.WaktuSelesai, + Tipe: jadwal.Tipe, + Link: jadwal.Link, + } + + dataJadwal = append(dataJadwal, data) + + } + + if result.Error != nil { + return nil, err + } + return dataJadwal, nil +} + func (repo *PendaftaranSidSemRepo) GetPendaftaranSeminarById(id string) (output entity.SeminarPendaftaranSidSemRequest, err error) { var pendaftaransem models.PendaftaranSidSem var pendaftaranTA models.PendaftaranTA diff --git a/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go b/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go index c9c75dbeb1c6a4e481a828cbfd4ff8426db0b5c2..554c8cada41f114e316500bd09eeb39bec38228b 100644 --- a/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go +++ b/src/module/pendaftaran_sidsem/internal/usecase/pendaftaran_sidsem.go @@ -19,6 +19,7 @@ type PendaftaranSidSemUsecase interface { EditLulus(input entity.EditLulusRequest) (models.PendaftaranSidSem, error) EditDitolak(input entity.EditDitolakRequest) (models.PendaftaranSidSem, error) GetPlaceholders(idMahasiswa string) (entity.Placeholders, error) + GetPendaftaran(offset, size int) (output []entity.PendaftaranSidSemRequest, err error) } type PendaftaranSidSemUc struct { @@ -61,6 +62,10 @@ func (uc *PendaftaranSidSemUc) GetPendaftaranByPeriode(idPeriode string, offset, return uc.pendaftaransidsemrepo.GetPendaftaranByPeriode(idPeriode, offset, size) } +func (uc *PendaftaranSidSemUc) GetPendaftaran(offset, size int) (output []entity.PendaftaranSidSemRequest, err error) { + return uc.pendaftaransidsemrepo.GetPendaftaran(offset, size) +} + func (uc *PendaftaranSidSemUc) GetPendaftaranSidangById(id string) (entity.SidangPendaftaranSidSemRequest, error) { return uc.pendaftaransidsemrepo.GetPendaftaranSidangById(id) } diff --git a/src/module/pendaftaran_sidsem/internal/usecase/repository.go b/src/module/pendaftaran_sidsem/internal/usecase/repository.go index 95fb5e1d33096e49d57a76d44cc6293e439e6d63..363d4c8283b74d088f79b08e902eba153cbecbb5 100644 --- a/src/module/pendaftaran_sidsem/internal/usecase/repository.go +++ b/src/module/pendaftaran_sidsem/internal/usecase/repository.go @@ -20,4 +20,5 @@ type PendaftaranSidSemRepository interface { GetNameUntilTopikPlaceholders(idMahasiswa string) (entity.NameTopik, error) GetDosbingNamePlaceholder(idMahasiswa string) (entity.DosbingName, error) GetPendaftaranTaIdByMahasiswa(idMahasiswa string) (string, error) + GetPendaftaran(offset, size int) (output []entity.PendaftaranSidSemRequest, err error) } diff --git a/src/module/pendaftaran_sidsem/transport/admin_handler.go b/src/module/pendaftaran_sidsem/transport/admin_handler.go index ead65b8b597f09f2096fd6cf6e18948111219cd9..e666bea46b56cd16778e846c9298bb79826d05e5 100644 --- a/src/module/pendaftaran_sidsem/transport/admin_handler.go +++ b/src/module/pendaftaran_sidsem/transport/admin_handler.go @@ -27,7 +27,8 @@ func NewAdminJadwalSeminarHandler(cfg config.PendaftaranSidSemTransportConfig) * } func (t *AdminPendaftaranSidSemHandler) MountAdmin(group *echo.Group) { - group.GET("/pendaftaran-sidsem", t.GetPendaftaranByPeriode) + group.GET("/pendaftaran-sidsem-periode", t.GetPendaftaranByPeriode) + group.GET("/pendaftaran-sidsem", t.GetPendaftaran) group.DELETE("/pendaftaran-sidsem", t.DeletePendaftaran) group.GET("/pendaftaran-sidang", t.GetPendaftaranSidangById) group.GET("/pendaftaran-seminar", t.GetPendaftaranSeminarById) @@ -39,6 +40,26 @@ func (t *AdminPendaftaranSidSemHandler) MountAdmin(group *echo.Group) { group.PATCH("/pendaftaran-ditolak", t.EditDitolak) } +func (t *AdminPendaftaranSidSemHandler) GetPendaftaran(c echo.Context) error { + sizeStr := c.QueryParam("limit") + offsetStr := c.QueryParam("offset") + + size, err := strconv.Atoi(sizeStr) + if err != nil { + size = 10 + } + offset, err := strconv.Atoi(offsetStr) + if err != nil { + offset = 0 + } + jadwal, err := t.pendaftaransidsemUsecase.GetPendaftaran(size, offset) + if err != nil { + return c.JSON(http.StatusBadRequest, utils.ResponseDetailOutput(false, http.StatusBadRequest, err.Error(), nil)) + } + + return c.JSON(http.StatusOK, utils.ResponseDetailOutput(true, http.StatusOK, "Pendaftaran successfully retreived", jadwal)) +} + func (t *AdminPendaftaranSidSemHandler) GetPendaftaranByPeriode(c echo.Context) error { idPeriode := c.QueryParam("id_periode") sizeStr := c.QueryParam("limit")