From 34055cf3e61a1f4fcbd25ea8d8ba1c9b82ac7306 Mon Sep 17 00:00:00 2001 From: bayusamudra5502 <bayusamudra.55.02.com@gmail.com> Date: Tue, 4 Apr 2023 16:38:25 +0700 Subject: [PATCH] fix: bugs when id not found --- handler/quiz/get.go | 6 +----- repository/quiz/impl.go | 12 ++++++++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/handler/quiz/get.go b/handler/quiz/get.go index 989720b..799ca82 100644 --- a/handler/quiz/get.go +++ b/handler/quiz/get.go @@ -43,11 +43,7 @@ func (m QuizHandlerImpl) GetQuizDetail(w http.ResponseWriter, r *http.Request) { if ok { payload := m.WrapperUtil.ErrorResponseWrap(respErr.Error(), respErr) - if respErr.Code != "NOT_OWNER" { - m.HttpUtil.WriteJson(w, http.StatusBadRequest, payload) - } else { - m.HttpUtil.WriteJson(w, http.StatusForbidden, payload) - } + m.HttpUtil.WriteJson(w, http.StatusBadRequest, payload) } else { payload := m.WrapperUtil.ErrorResponseWrap("internal server error", nil) m.HttpUtil.WriteJson(w, http.StatusInternalServerError, payload) diff --git a/repository/quiz/impl.go b/repository/quiz/impl.go index ddf2fe7..03665df 100644 --- a/repository/quiz/impl.go +++ b/repository/quiz/impl.go @@ -1,10 +1,12 @@ package quiz import ( + "errors" "time" "github.com/google/uuid" "gitlab.informatika.org/ocw/ocw-backend/model/domain/quiz" + "gitlab.informatika.org/ocw/ocw-backend/model/web" "gitlab.informatika.org/ocw/ocw-backend/provider/db" "gorm.io/gorm" ) @@ -22,13 +24,19 @@ func New( func (q *QuizRepositoryImpl) GetQuizes(courseId string) ([]quiz.Quiz, error) { result := &[]quiz.Quiz{} err := q.db.Where("course_id = ?", courseId).Find(result).Error + return *result, err } func (q *QuizRepositoryImpl) GetQuizDetail(quizId uuid.UUID) (*quiz.Quiz, error) { result := &quiz.Quiz{} - err := q.db.Where("id = ?", quizId).Find(result).Error - return result, err + err := q.db.Where("id = ?", quizId).First(result).Error + + if errors.Is(err, gorm.ErrRecordNotFound) { + return nil, web.NewResponseError("Record not found", "ERR_NOT_FOUND") + } + + return result, nil } func (q *QuizRepositoryImpl) UpdateScore(takeId uuid.UUID, score int) error { -- GitLab