Skip to content

Commit

Permalink
Merge pull request #17 from Harsh-Srivastav123/sessionVerifyApi
Browse files Browse the repository at this point in the history
added session verify api
  • Loading branch information
Harsh-Srivastav123 authored Apr 21, 2024
2 parents 667ee53 + fbe1221 commit f64595f
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
@Service
public class SessionService {


@Autowired
SessionDAO sessionDAO;

Expand All @@ -50,6 +51,35 @@ public class SessionService {
@Autowired
ModelMapper modelMapper;

public Object verifySession(SessionDTO sessionDTO) {

SessionVerifyDTO sessionVerifyDTO=modelMapper.map(sessionDTO,SessionVerifyDTO.class);
HashMap<Integer,String> sessionUserMap=new HashMap<>();
List<QuestionDTO> questionList=new ArrayList<>();

for(QuestionDTO question:sessionDTO.getSessionQuestionList()){
if(question.getId()!=null){
if(!questionDAO.existsById(question.getId())){
throw new BadRequest("question with questionId - "+question.getId().toString()+" doesn't exist");
}
questionList.add(modelMapper.map(questionDAO.findById(question.getId()).get(),QuestionDTO.class));
}
else {
questionList.add(question);
}
}
sessionVerifyDTO.setSessionVerifyQuestionList(questionList);

for(SessionUser sessionUser:sessionDTO.getSessionUserList()){
if(!userDAO.existsById(sessionUser.getUserId())){
throw new BadRequest("user with userId - "+sessionUser.getUserId().toString()+" doesn't exist");
}
sessionUserMap.put(sessionUser.getUserId(),userDAO.findById(sessionUser.getUserId()).get().getUsername());
}
sessionVerifyDTO.setUserMapList(sessionUserMap);
return sessionVerifyDTO;
}

public record sessionMessage(String message, Long timeLeft){}

public SessionDTO createSession(SessionDTO sessionDTO) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@
import com.example.quizapp.QuizApp.Services.SessionService;
import com.example.quizapp.QuizApp.Services.UserService;
import com.example.quizapp.QuizApp.entity.Session;
import com.example.quizapp.QuizApp.model.Response;
import com.example.quizapp.QuizApp.model.SessionDTO;
import com.example.quizapp.QuizApp.model.SessionResponse;
import com.example.quizapp.QuizApp.model.SessionResult;
import com.example.quizapp.QuizApp.model.*;
import com.example.quizapp.QuizApp.security.JwtAuthenticationFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.relational.core.sql.In;
Expand Down Expand Up @@ -65,4 +62,10 @@ public ResponseEntity<String> deleteSession(@PathVariable String sessionId){
return new ResponseEntity<>("Session deleted successfully sessionId = "+sessionId,HttpStatus.OK);
}

@PostMapping("/verifySession")
public ResponseEntity<Object> getSessionVerify(@RequestBody SessionDTO sessionDTO){
sessionDTO.setUserId(userService.getUserByUserName(jwtAuthenticationFilter.getUserNameByToken()).getId());
return new ResponseEntity<>(sessionService.verifySession(sessionDTO),HttpStatus.OK);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ public interface QuestionDAO extends JpaRepository<Question, Integer> {
@Query(value = "SELECT COUNT(id) FROM question WHERE difficulty= :n",nativeQuery = true)
Integer countByDifficulty( @Param("n") String difficulty);



@Query(value = "SELECT DISTINCT(category) FROM question",nativeQuery = true)
List<String> allCategory();

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.example.quizapp.QuizApp.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.util.HashMap;
import java.util.List;

@Getter
@Setter
@Data

public class SessionVerifyDTO {


Integer sessionId;
String dateAndTime;
Integer delayDuration;
Integer duration;
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
Integer userId;
String sessionTitle;
List<QuestionDTO> sessionVerifyQuestionList;
HashMap<Integer,String> userMapList;
}


0 comments on commit f64595f

Please sign in to comment.