quiz count

This commit is contained in:
2024-02-22 21:11:18 +09:00
parent 9e5f24949d
commit b6d1d7f44e
8 changed files with 85 additions and 16 deletions

View File

@ -24,12 +24,14 @@ type QuizController interface {
}
type quizController struct {
service services.QuizService
service services.QuizService
quizPaperService services.QuizPaperService
}
func NewQuizController(service services.QuizService) QuizController {
func NewQuizController(service services.QuizService, quizPaperService services.QuizPaperService) QuizController {
return &quizController{
service: service,
service: service,
quizPaperService: quizPaperService,
}
}
@ -174,6 +176,24 @@ func (controller *quizController) Create(c *gin.Context) {
return
}
count, err := controller.service.QuizCount(request.QuizPaperID)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
quizpaper, err := controller.quizPaperService.Find(request.QuizPaperID)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
quizpaper.QuizCount = int(count)
_, err = controller.quizPaperService.Update(quizpaper)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, result)
}
@ -264,7 +284,7 @@ func (controller *quizController) Delete(c *gin.Context) {
return
}
_, err = controller.service.Find(id)
quiz, err := controller.service.Find(id)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
@ -276,5 +296,23 @@ func (controller *quizController) Delete(c *gin.Context) {
return
}
count, err := controller.service.QuizCount(quiz.QuizPaperID)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
quizpaper, err := controller.quizPaperService.Find(quiz.QuizPaperID)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
quizpaper.QuizCount = int(count)
_, err = controller.quizPaperService.Update(quizpaper)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, gin.H{"message": "success"})
}

View File

@ -285,6 +285,7 @@ func (controller *quizPaperController) Copy(c *gin.Context) {
Content: template.Content,
Category: template.Category,
Tag: template.Tag,
QuizCount: 0,
Status: template.Status,
CreatedAt: time.Now(),
UpdatedAt: time.Now(),