diff --git a/handler/quiz/get.go b/handler/quiz/get.go index 989720bfb7b063955a00f3b8ea99a4756fe6fbc8..799ca822a991240a0c6febccb29640720f1b5e67 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 ddf2fe760fe3abef7a71058d33b4256386240c88..03665df4d4915b3c188da6e737bed27e7dc1582d 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 {