Skip to content

Commit

Permalink
Merge pull request #1 from MEITREX/integration-of-MElo
Browse files Browse the repository at this point in the history
Integration of M-Elo
  • Loading branch information
myluki2000 authored Aug 1, 2024
2 parents 27f6aba + 4028996 commit 8cf83a1
Show file tree
Hide file tree
Showing 41 changed files with 503 additions and 352 deletions.
9 changes: 5 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.+'
id 'org.springframework.boot' version '3.2.+'
id 'io.spring.dependency-management' version '1.+'
id "io.github.kobylynskyi.graphql.codegen" version "5.+"
id "org.sonarqube" version "5.+"
id "jacoco"

}

group = 'de.unistuttgart.iste.meitrex'
Expand All @@ -23,6 +22,7 @@ if (jacocoEnabled.toBoolean()) {
sonarqube {
properties {
property("sonar.projectKey", "MEITREX_quiz_service")

property("sonar.organization", "meitrex")
property("sonar.host.url", "https://sonarcloud.io")
}
Expand Down Expand Up @@ -108,7 +108,8 @@ repositories {
}

dependencies {
implementation 'de.unistuttgart.iste.meitrex:meitrex-common:1.0.6'

implementation 'de.unistuttgart.iste.meitrex:meitrex-common:1.2'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-graphql'
implementation 'org.springframework.boot:spring-boot-starter-validation'
Expand All @@ -124,7 +125,7 @@ dependencies {
runtimeOnly 'org.postgresql:postgresql'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'de.unistuttgart.iste.meitrex:meitrex-common-test:1.0.6'
testImplementation 'de.unistuttgart.iste.meitrex:meitrex-common-test:1.2'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework:spring-webflux'
testImplementation 'org.springframework.graphql:spring-graphql-test'
Expand Down
2 changes: 1 addition & 1 deletion jacoco.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ jacocoTestReport {
html.required.set(true)
html.outputLocation = layout.buildDirectory.dir('jacocoHtml')
}
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
package de.unistuttgart.iste.meitrex.quiz_service.controller;


import de.unistuttgart.iste.meitrex.quiz_service.persistence.entity.QuizEntity;
import de.unistuttgart.iste.meitrex.quiz_service.service.QuizService;

import de.unistuttgart.iste.meitrex.common.exception.NoAccessToCourseException;
import de.unistuttgart.iste.meitrex.common.user_handling.LoggedInUser;
import de.unistuttgart.iste.meitrex.common.user_handling.LoggedInUser.UserRoleInCourse;
import de.unistuttgart.iste.meitrex.generated.dto.*;

import de.unistuttgart.iste.meitrex.quiz_service.persistence.entity.QuizEntity;
import de.unistuttgart.iste.meitrex.quiz_service.service.QuizService;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.graphql.data.method.annotation.*;
Expand Down Expand Up @@ -67,62 +73,62 @@ public UUID deleteQuiz(@Argument final UUID assessmentId) {
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz addMultipleChoiceQuestion(@Argument final CreateMultipleChoiceQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_addMultipleChoiceQuestion(@Argument final CreateMultipleChoiceQuestionInput input, final QuizMutation quizMutation) {
return quizService.addMultipleChoiceQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz updateMultipleChoiceQuestion(@Argument final UpdateMultipleChoiceQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_updateMultipleChoiceQuestion(@Argument final UpdateMultipleChoiceQuestionInput input, final QuizMutation quizMutation) {
return quizService.updateMultipleChoiceQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz addClozeQuestion(@Argument final CreateClozeQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_addClozeQuestion(@Argument final CreateClozeQuestionInput input, final QuizMutation quizMutation) {
return quizService.addClozeQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz updateClozeQuestion(@Argument final UpdateClozeQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_updateClozeQuestion(@Argument final UpdateClozeQuestionInput input, final QuizMutation quizMutation) {
return quizService.updateClozeQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz addAssociationQuestion(@Argument final CreateAssociationQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_addAssociationQuestion(@Argument final CreateAssociationQuestionInput input, final QuizMutation quizMutation) {
return quizService.addAssociationQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz updateAssociationQuestion(@Argument final UpdateAssociationQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_updateAssociationQuestion(@Argument final UpdateAssociationQuestionInput input, final QuizMutation quizMutation) {
return quizService.updateAssociationQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz addExactAnswerQuestion(@Argument final CreateExactAnswerQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_addExactAnswerQuestion(@Argument final CreateExactAnswerQuestionInput input, final QuizMutation quizMutation) {
return quizService.addExactAnswerQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz updateExactAnswerQuestion(@Argument final UpdateExactAnswerQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_updateExactAnswerQuestion(@Argument final UpdateExactAnswerQuestionInput input, final QuizMutation quizMutation) {
return quizService.updateExactAnswerQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz addNumericQuestion(@Argument final CreateNumericQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_addNumericQuestion(@Argument final CreateNumericQuestionInput input, final QuizMutation quizMutation) {
return quizService.addNumericQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz updateNumericQuestion(@Argument final UpdateNumericQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_updateNumericQuestion(@Argument final UpdateNumericQuestionInput input, final QuizMutation quizMutation) {
return quizService.updateNumericQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz addSelfAssessmentQuestion(@Argument final CreateSelfAssessmentQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_addSelfAssessmentQuestion(@Argument final CreateSelfAssessmentQuestionInput input, final QuizMutation quizMutation) {
return quizService.addSelfAssessmentQuestion(quizMutation.getAssessmentId(), input);
}

@SchemaMapping(typeName = QUIZ_MUTATION_NAME)
public Quiz updateSelfAssessmentQuestion(@Argument final UpdateSelfAssessmentQuestionInput input, final QuizMutation quizMutation) {
public Quiz _internal_noauth_updateSelfAssessmentQuestion(@Argument final UpdateSelfAssessmentQuestionInput input, final QuizMutation quizMutation) {
return quizService.updateSelfAssessmentQuestion(quizMutation.getAssessmentId(), input);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package de.unistuttgart.iste.meitrex.quiz_service.controller;

import de.unistuttgart.iste.meitrex.common.event.ContentChangeEvent;

import de.unistuttgart.iste.meitrex.quiz_service.service.QuizService;
import de.unistuttgart.iste.meitrex.common.event.ContentChangeEvent;

import io.dapr.Topic;
import io.dapr.client.domain.CloudEvent;
import lombok.RequiredArgsConstructor;
Expand All @@ -21,7 +23,7 @@ public class SubscriptionController {

private final QuizService quizService;

@Topic(name = "content-changed", pubsubName = "gits")
@Topic(name = "content-changed", pubsubName = "meitrex")
@PostMapping(path = "/quiz-service/content-changed-pubsub")
public Mono<Void> updateAssociation(@RequestBody final CloudEvent<ContentChangeEvent> cloudEvent) {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
package de.unistuttgart.iste.meitrex.quiz_service.persistence.entity;

import de.unistuttgart.iste.meitrex.generated.dto.QuestionType;
import jakarta.persistence.Column;
import jakarta.persistence.ElementCollection;
import jakarta.persistence.Entity;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import jakarta.persistence.*;
import lombok.*;

import lombok.experimental.SuperBuilder;

import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
public class QuestionEntity {

@Id
@GeneratedValue
private UUID id;
private UUID itemId;

@Column(nullable = false)
private int number;
Expand All @@ -48,7 +47,7 @@ public boolean equals(final Object o) {
if (o == null || getClass() != o.getClass()) return false;
final QuestionEntity that = (QuestionEntity) o;
if (getNumber() != that.getNumber()) return false;
if (!Objects.equals(getId(), that.getId())) return false;
if (!Objects.equals(getItemId(), that.getItemId())) return false;
if (getType() != that.getType()) return false;
if (!(Objects.equals(getHint(), that.getHint()))) return false;

Expand All @@ -62,6 +61,6 @@ public boolean equals(final Object o) {

@Override
public int hashCode() {
return Objects.hash(getId(), getNumber(), getType(), getHint(), getQuestionStatistics());
return Objects.hash(getItemId(), getNumber(), getType(), getHint(), getQuestionStatistics());
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package de.unistuttgart.iste.meitrex.quiz_service.persistence.mapper;

import de.unistuttgart.iste.meitrex.generated.dto.*;

import de.unistuttgart.iste.meitrex.quiz_service.persistence.entity.*;
import de.unistuttgart.iste.meitrex.quiz_service.persistence.entity.*;

import lombok.RequiredArgsConstructor;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -96,7 +99,7 @@ public ClozeQuestion clozeQuestionEntityToDto(final ClozeQuestionEntity clozeQue
final ClozeQuestion result = ClozeQuestion.builder()
.setType(QuestionType.CLOZE)
.setNumber(clozeQuestionEntity.getNumber())
.setId(clozeQuestionEntity.getId())
.setItemId(clozeQuestionEntity.getItemId())
.setShowBlanksList(clozeQuestionEntity.isShowBlanksList())
.setAdditionalWrongAnswers(clozeQuestionEntity.getAdditionalWrongAnswers())
.setClozeElements(clozeQuestionEntity.getClozeElements().stream()
Expand Down
Loading

0 comments on commit 8cf83a1

Please sign in to comment.