From 833a713c4509d83b165bb5eb8138f302f9d6be60 Mon Sep 17 00:00:00 2001
From: Dominika Zemanovicova <xzemanov@fi.muni.cz>
Date: Sun, 16 Apr 2023 17:03:32 +0200
Subject: [PATCH] Simplify AnswerFacade update

---
 .../moduleexercise/answer/AnswerFacade.java   | 27 ++++---------------
 1 file changed, 5 insertions(+), 22 deletions(-)

diff --git a/application/module-exercise/src/main/java/org/fuseri/moduleexercise/answer/AnswerFacade.java b/application/module-exercise/src/main/java/org/fuseri/moduleexercise/answer/AnswerFacade.java
index 38165ddb..5f885b00 100644
--- a/application/module-exercise/src/main/java/org/fuseri/moduleexercise/answer/AnswerFacade.java
+++ b/application/module-exercise/src/main/java/org/fuseri/moduleexercise/answer/AnswerFacade.java
@@ -3,8 +3,6 @@ package org.fuseri.moduleexercise.answer;
 import jakarta.transaction.Transactional;
 import org.fuseri.model.dto.exercise.AnswerCreateDto;
 import org.fuseri.model.dto.exercise.AnswerDto;
-import org.fuseri.moduleexercise.question.Question;
-import org.fuseri.moduleexercise.question.QuestionService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -16,44 +14,29 @@ import org.springframework.stereotype.Service;
 @Transactional
 public class AnswerFacade {
     private final AnswerService answerService;
-    private final QuestionService questionService;
     private final AnswerMapper mapper;
 
 
     /**
      * Constructor for AnswerFacade
      *
-     * @param answerService   the service responsible for handling answer-related logic
-     * @param questionService the service responsible for handling question-related logic
-     * @param mapper          the mapper responsible for converting between DTOs and entities
+     * @param answerService the service responsible for handling answer-related logic
+     * @param mapper        the mapper responsible for converting between DTOs and entities
      */
     @Autowired
-    public AnswerFacade(AnswerService answerService, QuestionService questionService, AnswerMapper mapper) {
+    public AnswerFacade(AnswerService answerService, AnswerMapper mapper) {
         this.answerService = answerService;
-        this.questionService = questionService;
         this.mapper = mapper;
     }
 
     /**
-     * Update an answer
+     * Update answer
      *
      * @param id  of answer to update
      * @param dto dto with updated answer information
      */
     public AnswerDto update(long id, AnswerCreateDto dto) {
-        var updatedAnswer = mapper.fromCreateDto(dto);
-        answerService.update(id, updatedAnswer);
-
-        Question question;
-        question = questionService.find(dto.getQuestionId());
-
-        var questionAnswers = question.getAnswers();
-        questionAnswers.removeIf(a -> a.getId() == id);
-        questionAnswers.add(updatedAnswer);
-        question.setAnswers(questionAnswers);
-        questionService.update(dto.getQuestionId(), question);
-
-        return mapper.toDto(updatedAnswer);
+        return mapper.toDto(answerService.update(id, mapper.fromCreateDto(dto)));
     }
 
     /**
-- 
GitLab