Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -136,14 +136,14 @@ public ResponseEntity<?> submitUserAssessmentV3(@Valid @RequestBody Map<String,
@GetMapping("/v1/quml/assessment/read/{assessmentIdentifier}")
public ResponseEntity<SBApiResponse> readAssessment(
@PathVariable("assessmentIdentifier") String assessmentIdentifier,
@RequestHeader(Constants.X_AUTH_TOKEN) String token) throws Exception {
@RequestHeader(Constants.X_AUTH_TOKEN) String token) {
SBApiResponse readResponse = assessmentServiceV2.readAssessment(assessmentIdentifier, token);
return new ResponseEntity<>(readResponse, readResponse.getResponseCode());
}

@PostMapping("/v1/quml/question/list")
public ResponseEntity<?> readQuestionList(@Valid @RequestBody Map<String, Object> requestBody,
@RequestHeader("x-authenticated-user-token") String authUserToken) throws Exception {
@RequestHeader("x-authenticated-user-token") String authUserToken) {
SBApiResponse response = assessmentServiceV2.readQuestionList(requestBody, authUserToken);
return new ResponseEntity<>(response, response.getResponseCode());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,12 @@ public Map<String, Object> insertQuizOrAssessment(Map<String, Object> persist, B
public List<Map<String, Object>> getAssessmentbyContentUser(String rootOrg, String courseId, String userId)
throws Exception;

boolean addUserAssesmentStartTime(String userId, String assessmentIdentifier, Timestamp startTime);
boolean addUserAssesmentDataToDB(String userId, String assessmentId, Timestamp startTime, Timestamp endTime,
Map<String, Object> questionSet, String status);

Date fetchUserAssessmentStartTime(String userId, String s);
List<Map<String, Object>> fetchUserAssessmentDataFromDB(String userId, String assessmentIdentifier);

Boolean updateUserAssesmentDataToDB(String userId, String assessmentIdentifier,
Map<String, Object> submitAssessmentRequest, Map<String, Object> submitAssessmentResponse, String status,
Date startTime);
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
package org.sunbird.assessment.repo;

import com.datastax.driver.core.utils.UUIDs;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.sunbird.assessment.dto.AssessmentSubmissionDTO;
Expand All @@ -9,10 +17,8 @@
import org.sunbird.common.util.Constants;
import org.sunbird.core.logger.CbExtLogger;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
import com.datastax.driver.core.utils.UUIDs;
import com.google.gson.Gson;

@Service
public class AssessmentRepositoryImpl implements AssessmentRepository {
Expand All @@ -22,7 +28,7 @@ public class AssessmentRepositoryImpl implements AssessmentRepository {
public static final String SOURCE_ID = "sourceId";
public static final String USER_ID = "userId";
private CbExtLogger logger = new CbExtLogger(getClass().getName());

@Autowired
UserAssessmentSummaryRepository userAssessmentSummaryRepo;

Expand All @@ -39,14 +45,12 @@ public class AssessmentRepositoryImpl implements AssessmentRepository {

@Override
public Map<String, Object> getAssessmentAnswerKey(String artifactUrl) throws Exception {
// TODO Auto-generated method stub
return null;
return Collections.emptyMap();
}

@Override
public Map<String, Object> getQuizAnswerKey(AssessmentSubmissionDTO quizMap) throws Exception {
// TODO Auto-generated method stub
return null;
return Collections.emptyMap();
}

@Override
Expand Down Expand Up @@ -123,28 +127,54 @@ public Map<String, Object> insertQuizOrAssessment(Map<String, Object> persist, B
@Override
public List<Map<String, Object>> getAssessmentbyContentUser(String rootOrg, String courseId, String userId)
throws Exception {
// TODO Auto-generated method stub
return Collections.emptyList();
}

@Override
public boolean addUserAssesmentStartTime(String userId, String assessmentIdentifier, Timestamp startTime) {
public boolean addUserAssesmentDataToDB(String userId, String assessmentIdentifier, Timestamp startTime,
Timestamp endTime, Map<String, Object> questionSet, String status) {
Map<String, Object> request = new HashMap<>();
request.put(Constants.USER_ID, userId);
request.put(Constants.IDENTIFIER, assessmentIdentifier);
cassandraOperation.deleteRecord(Constants.KEYSPACE_SUNBIRD, Constants.TABLE_USER_ASSESSMENT_TIME, request);
request.put("starttime", startTime);
SBApiResponse resp = cassandraOperation.insertRecord(Constants.KEYSPACE_SUNBIRD, Constants.TABLE_USER_ASSESSMENT_TIME, request);
request.put(Constants.ASSESSMENT_ID_KEY, assessmentIdentifier);
request.put(Constants.START_TIME, startTime);
request.put(Constants.END_TIME, endTime);
request.put(Constants.ASSESSMENT_READ_RESPONSE, new Gson().toJson(questionSet));
request.put(Constants.STATUS, status);
SBApiResponse resp = cassandraOperation.insertRecord(Constants.KEYSPACE_SUNBIRD,
Constants.TABLE_USER_ASSESSMENT_DATA, request);
return resp.get(Constants.RESPONSE).equals(Constants.SUCCESS);
}

@Override
public Date fetchUserAssessmentStartTime(String userId, String assessmentIdentifier) {
@Override
public List<Map<String, Object>> fetchUserAssessmentDataFromDB(String userId, String assessmentIdentifier) {
Map<String, Object> request = new HashMap<>();
request.put(Constants.USER_ID, userId);
request.put(Constants.IDENTIFIER, assessmentIdentifier);
Map<String, Object> existingDataList = cassandraOperation.getRecordsByProperties(Constants.KEYSPACE_SUNBIRD,
Constants.TABLE_USER_ASSESSMENT_TIME, request, null).get(0);
return (Date) existingDataList.get("starttime");
request.put(Constants.ASSESSMENT_ID_KEY, assessmentIdentifier);
List<Map<String, Object>> existingDataList = cassandraOperation.getRecordsByProperties(
Constants.KEYSPACE_SUNBIRD, Constants.TABLE_USER_ASSESSMENT_DATA, request, null);
return existingDataList;
}

@Override
public Boolean updateUserAssesmentDataToDB(String userId, String assessmentIdentifier,
Map<String, Object> submitAssessmentRequest, Map<String, Object> submitAssessmentResponse, String status,
Date startTime) {
Map<String, Object> compositeKeys = new HashMap<>();
compositeKeys.put(Constants.USER_ID, userId);
compositeKeys.put(Constants.ASSESSMENT_ID_KEY, assessmentIdentifier);
compositeKeys.put(Constants.START_TIME, startTime);
Map<String, Object> fieldsToBeUpdated = new HashMap<>();
if (!submitAssessmentRequest.isEmpty()) {
fieldsToBeUpdated.put("submitassessmentrequest", new Gson().toJson(submitAssessmentRequest));
}
if (!submitAssessmentResponse.isEmpty()) {
fieldsToBeUpdated.put("submitassessmentresponse", new Gson().toJson(submitAssessmentResponse));
}
if (!status.isEmpty()) {
fieldsToBeUpdated.put(Constants.STATUS, status);
}
Map<String, Object> isDBUpdated = cassandraOperation.updateRecord(Constants.KEYSPACE_SUNBIRD,
Constants.TABLE_USER_ASSESSMENT_DATA, fieldsToBeUpdated, compositeKeys);
return true;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ public interface AssessmentServiceV2 {
* @return
* @throws Exception
*/
public SBApiResponse submitAssessment(Map<String, Object> data, String userEmail) throws Exception;
public SBApiResponse submitAssessment(Map<String, Object> data, String userEmail);

public SBApiResponse readAssessment(String assessmentIdentifier, String token) throws Exception;
public SBApiResponse readAssessment(String assessmentIdentifier, String token);

public SBApiResponse readQuestionList(Map<String, Object> requestBody, String authUserToken) throws Exception;
public SBApiResponse readQuestionList(Map<String, Object> requestBody, String authUserToken);
}
Loading