-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* add card mapper test * add card service test, fix delete and some refactorings * refactor entities to records implementing Card interface also rename volume to allow for purge to work again, add ValidatorUnitTests * fix update for different types & add controller IT and validation test
- Loading branch information
1 parent
9c2d80a
commit 958f058
Showing
21 changed files
with
1,107 additions
and
132 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
41 changes: 28 additions & 13 deletions
41
server/src/main/java/org/hyperskill/community/flashcards/card/model/MultipleChoiceQuiz.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,41 @@ | ||
package org.hyperskill.community.flashcards.card.model; | ||
|
||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
import lombok.ToString; | ||
import lombok.experimental.SuperBuilder; | ||
import lombok.Builder; | ||
import org.springframework.data.annotation.CreatedDate; | ||
import org.springframework.data.annotation.Id; | ||
import org.springframework.data.annotation.PersistenceCreator; | ||
import org.springframework.data.annotation.Transient; | ||
import org.springframework.data.annotation.TypeAlias; | ||
|
||
import java.time.Instant; | ||
import java.util.List; | ||
import java.util.Set; | ||
|
||
/** | ||
* Represents a multiple choice quiz card, i.e. where the user is provided with | ||
* multiple options of which at least one is correct. Commonly visualized as | ||
* having options with checkboxes | ||
*/ | ||
@Getter | ||
@Setter | ||
@ToString(callSuper = true) | ||
@NoArgsConstructor | ||
@SuperBuilder | ||
@Builder | ||
@TypeAlias("MCQ") | ||
public final class MultipleChoiceQuiz extends Card { | ||
private List<String> options; | ||
private List<Integer> correctOptions; | ||
public record MultipleChoiceQuiz( | ||
@Id String id, | ||
String title, | ||
Set<String> tags, | ||
String question, | ||
@CreatedDate Instant createdAt, | ||
@Transient String permissions, | ||
List<String> options, | ||
List<Integer> correctOptions | ||
) implements Card { | ||
|
||
public MultipleChoiceQuiz setPermissions(String permissions) { | ||
return new MultipleChoiceQuiz(id, title, tags, question, createdAt, permissions, options, correctOptions); | ||
} | ||
@PersistenceCreator | ||
@SuppressWarnings("unused") | ||
public MultipleChoiceQuiz(String id, String title, Set<String> tags, String question, List<String> options, | ||
List<Integer> correctOptions, Instant createdAt) { | ||
this(id, title, tags, question, createdAt, null, options, correctOptions); | ||
} | ||
} |
40 changes: 28 additions & 12 deletions
40
server/src/main/java/org/hyperskill/community/flashcards/card/model/QuestionAndAnswer.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,34 @@ | ||
package org.hyperskill.community.flashcards.card.model; | ||
|
||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
import lombok.ToString; | ||
import lombok.experimental.SuperBuilder; | ||
import lombok.Builder; | ||
import org.springframework.data.annotation.CreatedDate; | ||
import org.springframework.data.annotation.Id; | ||
import org.springframework.data.annotation.PersistenceCreator; | ||
import org.springframework.data.annotation.Transient; | ||
import org.springframework.data.annotation.TypeAlias; | ||
|
||
@Getter | ||
@Setter | ||
@ToString(callSuper = true) | ||
@NoArgsConstructor | ||
@SuperBuilder | ||
import java.time.Instant; | ||
import java.util.Set; | ||
|
||
@Builder | ||
@TypeAlias("QNA") | ||
public final class QuestionAndAnswer extends Card { | ||
private String answer; | ||
public record QuestionAndAnswer( | ||
@Id String id, | ||
String title, | ||
Set<String> tags, | ||
String question, | ||
@CreatedDate Instant createdAt, | ||
@Transient String permissions, | ||
String answer | ||
) implements Card { | ||
|
||
public QuestionAndAnswer setPermissions(String permissions) { | ||
return new QuestionAndAnswer(id, title, tags, question, createdAt, permissions, answer); | ||
} | ||
|
||
@PersistenceCreator | ||
@SuppressWarnings("unused") | ||
public QuestionAndAnswer(String id, String title, Set<String> tags, String question, String answer, Instant createdAt) { | ||
this(id, title, tags, question, createdAt, null, answer); | ||
} | ||
} |
Oops, something went wrong.