package com.bizofficer.subscription.payments;

import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
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;

@RestController
@Service
public class PaymentGatewayResponseController {
	
	private static final Logger logger = Logger.getLogger(PaymentGatewayResponseController.class);
	
	@Autowired
	private PaymentGatewayResponseService serviceObj;
	
	@Value("${pgResponseURL}")
	private String pgResponseURL;
	
	@RequestMapping(value = "/paygateresponse", method = RequestMethod.POST)
	public void method(@ModelAttribute("SpringWeb")PaymentGatewayBean objBean, HttpServletResponse httpServletResponse) {
	    
		try {
			PaymentTokenResponseBean tsrbObj = (PaymentTokenResponseBean) (Object) serviceObj.execute(objBean);
			
			logger.info("StudentId: "+tsrbObj.getStudentId());
			logger.info("CourseId: "+tsrbObj.getCourseId());

			httpServletResponse.setHeader("Location", pgResponseURL+"?studentId="+tsrbObj.getStudentId()+"&courseId="+tsrbObj.getCourseId());
		    httpServletResponse.setStatus(302);
		    
		} catch (Exception e) {
			e.printStackTrace();
			/////return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e);
		}
		
	}
	
	
}
