package com.bizofficer.apiweb.testdetail;

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.RequestHeader;
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.login.LoginBean;
import com.bizofficer.apiweb.login.TokenVerifyResponsePojo;
import com.bizofficer.apiweb.login.TokenVerifyStudentService;
import com.bizofficer.pojo.response.ListResponsePojo;

@RestController
@Service
public class TestDetailExistingController {
	
	private static final Logger logger = Logger.getLogger(TestDetailExistingController.class);
	
	@Autowired
	private TestDetailExistingService testDetailExistingServiceObj;
	
	@Autowired
	private TokenVerifyStudentService objTokenVerifyStudentService;
	
	@RequestMapping(value = {"/testdetailexisting"}, method = RequestMethod.GET)
	public ResponseEntity<Object> execute(@ModelAttribute("SpringWeb")BeanTesting objBean, @RequestHeader("studentId") String studentId, @RequestHeader("token") String token) {
		
		try {
			
			System.out.println("TestDetailExistingController Test Id: "+objBean.getTestSession() );
			System.out.println("TestDetailExistingController Organisation Id: "+objBean.getOrganisationId() );
			System.out.println("TestDetailExistingController Student Id: "+objBean.getStudentId() );
			
			LoginBean loginBean = new LoginBean();
			loginBean.setStudentId(studentId);
			loginBean.setToken(token);
			TokenVerifyResponsePojo objTokenVerifyResponse = (TokenVerifyResponsePojo) (Object) objTokenVerifyStudentService.execute(loginBean);

			if(objTokenVerifyResponse.getResponseTxt().equals("success")) {
				ListResponsePojo responseObj = (ListResponsePojo) (Object) testDetailExistingServiceObj.execute(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);
	}
	

	
	
}
