This repository has been archived by the owner on Apr 27, 2024. It is now read-only.
-
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.
Merge pull request #194 from WisdomWorks/dev-stef
feat[dev-stef]: create file exercise and submit api
- Loading branch information
Showing
15 changed files
with
259 additions
and
43 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
19 changes: 13 additions & 6 deletions
19
src/main/java/com/example/codeE/model/exercise/FileExercise.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,22 +1,29 @@ | ||
package com.example.codeE.model.exercise; | ||
|
||
import com.example.codeE.model.exercise.common.QuizQuestion; | ||
import com.example.codeE.request.exercise.file.CreateFileExerciseRequest; | ||
import jakarta.validation.constraints.NotNull; | ||
import jakarta.validation.constraints.Pattern; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
import org.springframework.data.mongodb.core.mapping.Document; | ||
import org.springframework.data.mongodb.core.mapping.Field; | ||
|
||
import java.util.Date; | ||
import java.util.List; | ||
import java.util.ArrayList; | ||
|
||
@Getter | ||
@Setter | ||
@AllArgsConstructor | ||
@NoArgsConstructor | ||
@Document(collection = "FileExercise") | ||
public class FileExercise extends Exercise{ | ||
public FileExercise(String topicId, String exerciseName, String key, Date startTime, Date endTime, int durationTime, int reAttempt, String type, String exerciseDescription, boolean isShowAll, List<String> publicGroupIds) { | ||
super(topicId, exerciseName, key, startTime, endTime, durationTime, reAttempt, type, exerciseDescription, isShowAll, publicGroupIds); | ||
@Field | ||
@NotNull(message = "Exercise's question is required") | ||
private String question; | ||
|
||
public FileExercise(CreateFileExerciseRequest request){ | ||
super(request.getTopicId(), request.getExerciseName(), request.getKey(), request.getStartTime(), request.getEndTime(), request.getDurationTime(), request.getReAttempt(), "file",request.getExerciseDescription(), false, | ||
new ArrayList<String>()); | ||
this.question = request.getQuestion(); | ||
} | ||
} |
24 changes: 24 additions & 0 deletions
24
src/main/java/com/example/codeE/model/exercise/FileSubmission.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 |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package com.example.codeE.model.exercise; | ||
|
||
import com.example.codeE.request.exercise.file.CreateFileSubmissionRequest; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
import org.springframework.data.mongodb.core.mapping.Document; | ||
import org.springframework.data.mongodb.core.mapping.Field; | ||
|
||
@Getter | ||
@Setter | ||
@AllArgsConstructor | ||
@NoArgsConstructor | ||
@Document(collection = "FileSubmission") | ||
public class FileSubmission extends Submission { | ||
@Field | ||
private String fileUrl; | ||
|
||
public FileSubmission(CreateFileSubmissionRequest request, float score) { | ||
super(request.getStudentId(), request.getExerciseId(), score, true, ""); | ||
this.fileUrl = request.getUrl(); | ||
} | ||
} |
7 changes: 7 additions & 0 deletions
7
src/main/java/com/example/codeE/repository/FileExerciseRepository.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 |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package com.example.codeE.repository; | ||
|
||
import com.example.codeE.model.exercise.FileExercise; | ||
import org.springframework.data.mongodb.repository.MongoRepository; | ||
|
||
public interface FileExerciseRepository extends MongoRepository<FileExercise, String> { | ||
} |
7 changes: 7 additions & 0 deletions
7
src/main/java/com/example/codeE/repository/FileSubmissionRepository.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 |
---|---|---|
@@ -0,0 +1,7 @@ | ||
package com.example.codeE.repository; | ||
|
||
import com.example.codeE.model.exercise.FileSubmission; | ||
import org.springframework.data.mongodb.repository.MongoRepository; | ||
|
||
public interface FileSubmissionRepository extends MongoRepository<FileSubmission, String> { | ||
} |
34 changes: 34 additions & 0 deletions
34
src/main/java/com/example/codeE/request/exercise/file/CreateFileExerciseRequest.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 |
---|---|---|
@@ -0,0 +1,34 @@ | ||
package com.example.codeE.request.exercise.file; | ||
|
||
import com.example.codeE.validator.id.ExistingId; | ||
import jakarta.validation.constraints.NotNull; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
|
||
import java.util.Date; | ||
|
||
@Getter | ||
@Setter | ||
@AllArgsConstructor | ||
@NoArgsConstructor | ||
@ExistingId(targetClasses = {CreateFileExerciseRequest.class}) | ||
public class CreateFileExerciseRequest { | ||
@NotNull(message = "Topic ID is required") | ||
private String topicId; | ||
@NotNull(message = "Exercise's name is required") | ||
private String exerciseName; | ||
@NotNull(message = "Exercise's key is required") | ||
private String key; | ||
@NotNull(message = "Start time is required") | ||
private Date startTime; | ||
@NotNull(message = "End time is required") | ||
private Date endTime; | ||
@NotNull(message = "Duration time is required") | ||
private int durationTime; | ||
private int reAttempt; | ||
private String exerciseDescription; | ||
@NotNull(message = "Question is required") | ||
private String question; | ||
} |
19 changes: 19 additions & 0 deletions
19
src/main/java/com/example/codeE/request/exercise/file/CreateFileSubmissionRequest.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 |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package com.example.codeE.request.exercise.file; | ||
|
||
import jakarta.validation.constraints.NotNull; | ||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.Setter; | ||
|
||
@Getter | ||
@Setter | ||
@AllArgsConstructor | ||
@NoArgsConstructor | ||
public class CreateFileSubmissionRequest { | ||
@NotNull(message = "Student Id is required") | ||
private String studentId; | ||
@NotNull(message = "Exercise Id is required") | ||
private String exerciseId; | ||
private String url; | ||
} |
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
35 changes: 35 additions & 0 deletions
35
src/main/java/com/example/codeE/service/exercise/FileExerciseImpl.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 |
---|---|---|
@@ -0,0 +1,35 @@ | ||
package com.example.codeE.service.exercise; | ||
|
||
import com.example.codeE.helper.LoggerHelper; | ||
import com.example.codeE.model.exercise.FileExercise; | ||
import com.example.codeE.repository.FileExerciseRepository; | ||
import com.example.codeE.repository.GroupRepository; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.stereotype.Service; | ||
|
||
import java.util.NoSuchElementException; | ||
|
||
@Service | ||
public class FileExerciseImpl implements FileExerciseService{ | ||
@Autowired | ||
private FileExerciseRepository fileExerciseRepository; | ||
|
||
@Autowired | ||
private GroupRepository groupRepository; | ||
|
||
@Override | ||
public FileExercise createFileExercise(FileExercise fileExercise) { | ||
try{ | ||
for(String groupId : fileExercise.getPublicGroupIds()){ | ||
this.groupRepository.findById(groupId).orElseThrow(() -> new NoSuchElementException("No Group found with ID: " + groupId)); | ||
} | ||
if (fileExercise.getReAttempt() <= 0){ | ||
fileExercise.setReAttempt(1); | ||
} | ||
return this.fileExerciseRepository.save(fileExercise); | ||
}catch (Exception e){ | ||
LoggerHelper.logError(e.getMessage()); | ||
throw new RuntimeException("Can not save file exercise"); | ||
} | ||
} | ||
} |
5 changes: 5 additions & 0 deletions
5
src/main/java/com/example/codeE/service/exercise/FileExerciseService.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 |
---|---|---|
@@ -0,0 +1,5 @@ | ||
package com.example.codeE.service.exercise; | ||
import com.example.codeE.model.exercise.FileExercise; | ||
public interface FileExerciseService { | ||
FileExercise createFileExercise(FileExercise request); | ||
} |
Oops, something went wrong.