package com.app.CompagnyServiceImpl;

import java.util.HashMap;
import java.util.Map;

import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@Service
public class ApiTokenPdf {
	 public String getToken() {
		     String email = "admin@admin.com";
		     String password = "86[4Xmk2!M-faH";
	         String requestBody = "{\"email\": \"" + email + "\", \"password\": \"" + password + "\"}";
	         String token="";

		 RestTemplate restTemplate = new RestTemplate();
		 String url = "https://compara.slc-assurances.fr/api/login";
		 //String requestJson = "{\"queriedQuestion\":\"Is there pain in your hand?\"}";
		 HttpHeaders headers = new HttpHeaders();
		 headers.setContentType(MediaType.APPLICATION_JSON);
		 HttpEntity<String> entity = new HttpEntity<>(requestBody,headers);
		 String answer = restTemplate.postForObject(url, entity, String.class);
		 System.out.println(answer);
		 try {
			    ObjectMapper objectMapper = new ObjectMapper();
			    JsonNode jsonNode = objectMapper.readTree(answer);
			     JsonNode j=jsonNode.get("success");
			     token=j.get("token").asText();
			    // Extrait l'array "Prices"
	            JsonNode pricesNode = jsonNode.get("success");
		 } catch (Exception e) {
			  e.printStackTrace();
	            System.out.println("Problème lors du décodage JSON");

		    return null;
		}
		 return token;
	 }

	 public String ApiPdf(String nom, String prenom, String email, String numTel, String dateNaissance, String dateEffet, String regime, String code_postal,
				String garanties, String souscription) throws JsonProcessingException
	 {
		 Map<String, String> postData = new HashMap<>();
	        postData.put("Nom", nom);
	        postData.put("prenom", prenom);
	        postData.put("telephone", numTel);
	        postData.put("email", email);
	        postData.put("date de naissance", dateNaissance);
	        postData.put("dateEffet", dateEffet);
	        postData.put("regime", regime);
	        postData.put("code_postal", code_postal);
	        postData.put("garanties", garanties);
	        postData.put("souscription", souscription);

	     String requestBody = new ObjectMapper().writeValueAsString(postData);
         System.out.println("request " +requestBody);
		 RestTemplate restTemplate = new RestTemplate();
		 String url = "https://compara.slc-assurances.fr/api/DevismUTUELLE";
		 HttpHeaders headers = new HttpHeaders();
		 headers.setContentType(MediaType.APPLICATION_JSON);
	     headers.set("Authorization", "Bearer " +getToken() );

		 HttpEntity<String> entity = new HttpEntity<>(requestBody,headers);
		 String answer = restTemplate.postForObject(url, entity, String.class);
		 System.out.println(answer);
		 return answer;
		   // return "true";
	 }

	 public String sendHubpot(String nom, String prenom, String email, String numTel, String dateNaissance, String dateEffet, String regime, String code_postal,
				String garanties, String souscription) throws JsonProcessingException {
		 //System.out.println("garanties " +garanties);
		 Map<String, String> postData = new HashMap<>();
	        postData.put("Nom", nom);
	        postData.put("prenom", prenom);
	        postData.put("telephone", numTel);
	        postData.put("email", email);
	        postData.put("date de naissance", dateNaissance);
	        postData.put("dateEffet", dateEffet);
	        postData.put("regime", regime);
	        postData.put("code_postal", code_postal);
	        postData.put("garanties", garanties);
	        postData.put("souscription", souscription);

	     String requestBody = new ObjectMapper().writeValueAsString(postData);
	     //System.out.println("request " +requestBody);
		 RestTemplate restTemplate = new RestTemplate();
		 String url = "https://compara.slc-assurances.fr/api/SendHubspot";
		 HttpHeaders headers = new HttpHeaders();
		 headers.setContentType(MediaType.APPLICATION_JSON);
	     headers.set("Authorization", "Bearer " +getToken() );

		 HttpEntity<String> entity = new HttpEntity<>(requestBody,headers);
		 String answer = restTemplate.postForObject(url, entity, String.class);
		 //System.out.println("last result" +answer);
		 //return answer;
		 return "true";
	 }

	/* public String ApiPdf(String postData) {
	System.out.println("aaaa "+postData);
	         return postData;
	 }*/
}
