package com.bizofficer.teacher.schedule;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.bizofficer.apiweb.testdetail.BeanTesting;
import com.bizofficer.pojo.response.ListResponsePojo;

@RestController
@Service
public class TeacherTestDetailsController {
	
	private static final Logger logger = Logger.getLogger(TeacherTestDetailsController.class);
	
	@Autowired
	private TeacherTopicTestAPIService topicTestAPIServiceObj;

	@RequestMapping(value = {"/teacher-testdetails"}, method = RequestMethod.GET)
	public ResponseEntity<Object> execute(@ModelAttribute("SpringWeb")BeanTesting objBean) {
		
		try {
			
//			LoginBean loginBean = new LoginBean();
//			loginBean.setStudentId(studentId);
//			loginBean.setToken(token);
//			TokenVerifyResponsePojo objTokenVerifyResponse = (TokenVerifyResponsePojo) (Object) objTokenVerifyStudentService.execute(loginBean);
//			
//			if(objTokenVerifyResponse.getResponseTxt().equals("success")) {
			
				ListResponsePojo responseObj = new ListResponsePojo();
				
				logger.info("Test Id: "+objBean.getTestId() );
				logger.info("Test Type: "+objBean.getTestType() );	
					
				if(objBean.getTestType()!=null && objBean.getTestType()==1) {
					// Self Test ************************************************
//					responseObj = (ListResponsePojo) (Object) selfTestAPIServiceObj.doExecute(objBean);
	
					
				}else if(objBean.getTestType()!=null && objBean.getTestType()==2) {
					// Topic Test ***********************************************
					
					responseObj = (ListResponsePojo) (Object) topicTestAPIServiceObj.doExecute(objBean);					
				
				}else if(objBean.getTestType()!=null && objBean.getTestType()==3) {
					// Mock Test ************************************************
//					responseObj = (ListResponsePojo) (Object) mockTestAPIServiceObj.doExecute(objBean);
	
				
				}else if(objBean.getTestType()!=null && objBean.getTestType()==4) {
					// Class Test ************************************************
//					responseObj = (ListResponsePojo) (Object) classTestAPIServiceObj.doExecute(objBean);
					
				}
				
				logger.info("Service ResponseTxt: "+responseObj.getResponseTxt());
				
				HttpHeaders headers = new HttpHeaders();
		        return ResponseEntity.ok().headers(headers).body(responseObj);
			
//			}
//
//			
//			logger.info("Token Verify ResponseTxt: "+objTokenVerifyResponse.getResponseTxt());
//			
//			HttpHeaders headers = new HttpHeaders();
//	        return ResponseEntity.ok().headers(headers).body(objTokenVerifyResponse);
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
	}
	

	
	
}
