Skip to content

Commit 0c936ab

Browse files
Merge pull request #60 from CSC207-2022F-UofT/refactor-feature-delete-flashcard-set
Refactored feature: Delete Flashcard Set so that the interactor uses …
2 parents f8628ba + f446259 commit 0c936ab

File tree

3 files changed

+20
-23
lines changed

3 files changed

+20
-23
lines changed

src/main/java/delete_flashcardset_use_case/DelFlashcardSetInteractor.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
// Use case (Red) layer
44

5+
import dataAccess.DBGateway;
56
import dataAccess.IFlashcardDataAccess;
67
import dataAccess.IFlashcardSetDataAccess;
78

@@ -19,12 +20,17 @@
1920

2021
public class DelFlashcardSetInteractor implements DelFlashcardSetInputBoundary {
2122

22-
23-
24-
IFlashcardSetDataAccess flashcardSetDataAccess;
25-
IFlashcardDataAccess flashcardDataAccess; // for deleting flashcards associated with the flashcard set
23+
DBGateway dbGateway;
24+
IFlashcardSetDataAccess flashcardSetDataAccess; // for testing
25+
IFlashcardDataAccess flashcardDataAccess; // for testing
2626
DelFlashcardSetOutputBoundary outputBoundary;
2727

28+
public DelFlashcardSetInteractor(DBGateway dbGateway, DelFlashcardSetOutputBoundary outputBoundary) {
29+
this.dbGateway = dbGateway;
30+
this.outputBoundary = outputBoundary;
31+
}
32+
33+
// Alternative constructor for testing purposes
2834
public DelFlashcardSetInteractor(IFlashcardSetDataAccess flashcardSetDataAccess,
2935
IFlashcardDataAccess flashcardDataAccess,
3036
DelFlashcardSetOutputBoundary outputBoundary) {
@@ -36,16 +42,17 @@ public DelFlashcardSetInteractor(IFlashcardSetDataAccess flashcardSetDataAccess,
3642
@Override
3743
public DelFlashcardSetResponseModel delete(DelFlashcardSetRequestModel requestModel) {
3844

39-
if (flashcardSetDataAccess.getFlashcardSet(requestModel.getFlashcardSetId()) == null) {
45+
if (dbGateway.getFlashcardSet(requestModel.getFlashcardSetId()) == null) {
4046
return outputBoundary.prepareFailView("Flashcard set #"
4147
+ requestModel.getFlashcardSetId() + " doesn't exist.");
4248
} else {
4349
// First delete all the flashcards associated with this flashcard set in Flashcards.csv
44-
for (int id : flashcardSetDataAccess.getFlashcardSet(requestModel.getFlashcardSetId()).getFlashcardIds()) {
45-
flashcardDataAccess.deleteFlashcard(id);
50+
for (int id : dbGateway.getFlashcardSetGateway().getFlashcardSet(requestModel.getFlashcardSetId()).getFlashcardIds()) {
51+
dbGateway.deleteFlashcard(requestModel.getFlashcardSetId(), id);
4652
}
4753
// Then delete the flashcard set in FlashcardSets.csv
48-
flashcardSetDataAccess.deleteFlashcardSet(requestModel.getFlashcardSetId());
54+
dbGateway.deleteFlashcardSet(dbGateway.getFlashcardSet(requestModel.getFlashcardSetId()).getOwnerUsername(),
55+
requestModel.getFlashcardSetId());
4956

5057
return outputBoundary.prepareSuccessView("Flashcard set #" + requestModel.getFlashcardSetId()
5158
+ " has been deleted.");

src/main/java/delete_flashcardset_use_case/MainDeleteFlashcardSet.java

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package delete_flashcardset_use_case;
22

3-
import dataAccess.FlashcardDataAccess;
4-
import dataAccess.FlashcardSetDataAccess;
5-
import dataAccess.IFlashcardDataAccess;
6-
import dataAccess.IFlashcardSetDataAccess;
3+
import create_flashcardset_use_case.MainCreateFlashcardSet;
4+
import dataAccess.*;
75

86
import javax.swing.*;
97
import java.awt.*;
@@ -22,17 +20,9 @@ public static void main(String[] args) {
2220
application.add(screens);
2321

2422
// Create the parts to plug into the Use Case+Entities engine
25-
IFlashcardSetDataAccess flashcardSetRepo;
26-
IFlashcardDataAccess flashcardRepo;
27-
try {
28-
flashcardSetRepo = new FlashcardSetDataAccess("src/data/FlashcardSets.csv");
29-
flashcardRepo = new FlashcardDataAccess("src/data/Flashcards.csv");
30-
} catch (IOException e) {
31-
throw new RuntimeException("Could not create file.");
32-
}
23+
DBGateway dbGateway = MainCreateFlashcardSet.dbGatewaySetup();
3324
DelFlashcardSetOutputBoundary outputBoundary = new DelFlashcardSetPresenter();
34-
DelFlashcardSetInputBoundary interactor = new DelFlashcardSetInteractor(flashcardSetRepo, flashcardRepo,
35-
outputBoundary);
25+
DelFlashcardSetInputBoundary interactor = new DelFlashcardSetInteractor(dbGateway, outputBoundary);
3626
DelFlashcardSetController controller = new DelFlashcardSetController(
3727
interactor
3828
);

src/test/java/delete_flashcardset_use_case/DelFlashcardSetInteractorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ public DelFlashcardSetResponseModel prepareFailView(String error) throws Flashca
167167
// Test part
168168
try {
169169
interactor.delete(inputData); // invalid id should go immediately to catch block (i.e., pass test)
170-
assert (false); // if id exists, then this line is reached and test fails
170+
assert(false); // if id exists, then this line is reached and test fails
171171
} catch (FlashcardSetNotFound e) {
172172

173173
}

0 commit comments

Comments
 (0)