<?php namespace Eae\Services;

use App;
use Config;
use Mail;
use Sendinblue\Mailin;
use User;
use View;


class EmailerService
{

  public function sendConfirmation($to, $shareUrl, $resultImage, $onlineVersionUrl, $optOutLink, $seeYourImageUrl)
  {

    $emailTo = $to;
    $emailFrom = Config::get('project/mailin.from');
    $this->sendEmail($emailTo, $emailFrom, $shareUrl, $resultImage, $onlineVersionUrl, $optOutLink, $seeYourImageUrl);

    return;
  }

  public function optOut($userEmail)
  {
    $user = User::
    where('email', $userEmail)
      ->update(['newsletter' => 0]);

    Return;
  }

  protected function sendEmail($to, $from = 'newsletter@amnesty.ch', $shareUrl, $resultImage, $onlineVersionUrl = '', $optOutLink = '', $seeYourImageUrl = '')
  {

    $emailData = [
      'shareUrl'         => $shareUrl,
      'resultImage'      => $resultImage,
      'onlineVersionUrl' => $onlineVersionUrl,
      'optOutLink'       => $optOutLink,
      'seeYourImageUrl'  => $seeYourImageUrl
    ];

    $mailView = View::make('frontend.email.confirmation', $emailData);
    $mailViewContent = $mailView->render();

    $emailDataGroup = [
      'shareUrl'    => $shareUrl,
      'resultImage' => $resultImage,
      'userEmail'   => $to
    ];

    $mailViewSupport = View::make('frontend.email.support', $emailDataGroup);
    $mailViewContentSupport = $mailViewSupport->render();

    $mailin = new Mailin('https://api.sendinblue.com/v2.0', Config::get('project/mailin.apiKey'), 5000);
    /** Prepare variables for easy use **/

    $data = ["to"      => [$to => "Supporter"],
             "from"    => [$from, "Amnesty International"],
             "replyto" => [$from, "Reply To"],
             "subject" => "I'M HERE",
             "text"    => "I'M HERE",
             "html"    => $mailViewContent
    ];

    $toSupport = 'amnesty-image-upload@station.ch';

    $dataGroup = ["to"      => [$toSupport => "To"],
                  "from"    => [$from, "Amnesty International"],
                  "replyto" => [$from, "Reply To"],
                  "subject" => "I'M HERE",
                  "text"    => "I'M HERE",
                  "html"    => $mailViewContentSupport
    ];

    $sendEmail = $mailin->send_email($data);
    $sendToGroup = $mailin->send_email($dataGroup);

    return;
  }

  protected function logEmail($email, $to, $cc)
  {
//        $log = new EmailLog();
//        $log->email_id = $email->id;
//        $log->to = serialize($to);
//        $log->cc = $cc ? serialize($cc) : null;
//        $log->save();
  }

}
