package com.bizofficer.util.system;

import com.bizofficer.school.webcourses.WebCoursesService;
import com.sendgrid.*;
import com.sendgrid.helpers.mail.Mail;
import com.sendgrid.helpers.mail.objects.Content;
import com.sendgrid.helpers.mail.objects.Email;
import com.sendgrid.helpers.mail.objects.Personalization;

import java.io.IOException;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.core.BeanPropertyRowMapper;

import java.io.UnsupportedEncodingException;  
import java.util.Iterator;
import java.util.List;
import java.util.Properties;  
import java.util.logging.Level;  

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Authenticator;  
import javax.mail.Message;  
import javax.mail.MessagingException;  
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage; 
import javax.mail.internet.MimeMultipart;

@SuppressWarnings("unused")
public class SendGridMail{
	
	private static final Logger logger = Logger.getLogger(SendGridMail.class);
 
    public Integer send(String[] recipients, String[] bccRecipients, String subject, String message) throws IOException {  
        try {  
        	
        	
        	Email from = new Email("info@easetolearn.com");

        	
            Mail mail = new Mail();
            Personalization personalization = new Personalization();
            for (int i = 0, size = recipients.length; i < size; i++) {
                personalization.addTo(new Email(recipients[i]));             
            }            
            if(bccRecipients!=null && bccRecipients.length>0) {
	            for (int i = 0, size = bccRecipients.length; i < size; i++) {
	                personalization.addBcc(new Email(bccRecipients[i]));             
	            }
            }
            
            personalization.addBcc(new Email("info@easetolearn.com"));
            
            mail.setFrom(from);
            mail.addPersonalization(personalization);
            
            Content content = new Content("text/html", message);
            mail.addContent(content);
            
            mail.setSubject(subject);
            
            // SENDGRID_API_KEY
//            SendGrid sg = new SendGrid(System.getenv("SG.e8kzJjCDS0aCz1Zo88jKOA.SU5TCEaxoi4kkBuKj58ZIeAsOjBIYIsprtkeGrd7CAk"));
            SendGrid sg = new SendGrid("SG.e8kzJjCDS0aCz1Zo88jKOA.SU5TCEaxoi4kkBuKj58ZIeAsOjBIYIsprtkeGrd7CAk");

            Request request = new Request();
            try {
              request.setMethod(Method.POST);
              request.setEndpoint("mail/send");
              request.setBody(mail.build());
              Response response = sg.api(request);
              
              logger.info(response.getStatusCode());
              logger.info(response.getBody());
              logger.info(response.getHeaders());
              
              return response.getStatusCode();
              
            } catch (IOException ex) {
              throw ex;
            }
            
        } catch (Exception ex) {  
            ex.printStackTrace();  
  
        } 
        
        return 0;
        
    }  
  
    
	
}
