<?php

require_once('libphp-phpmailer/PHPMailerAutoload.php');

use Vn\Lib;

class Contact extends Vn\Web\JsonRequest {
	const PARAMS = [
		 'name'
		,'pc'
		,'phone'
		,'email'
		,'message'
		,'captcha'
	];

	function run($db) {
		// Checks the antispam code

		$lastCaptcha = $_SESSION['captcha'];
		unset($_SESSION['captcha']);
		
		if ($_REQUEST['captcha'] !== $lastCaptcha)
			throw new Lib\UserException (s('Wrong captcha'), 'wrongCaptcha');

		// Sends the mail

		// TODO: Change form fields
		//$db->queryFromFile(__DIR__.'/contact', $_REQUEST);
		//$customerId = $db->getValue('SELECT @id');
		
		$conf = $db->getObject(
			'SELECT m.host, m.port, m.secure, m.sender, m.user, m.password, c.recipient 
				FROM mailConfig m JOIN contact c'
		);

		$mail = new PHPMailer();
		$mail->isSMTP();
		$mail->Host = $conf->host;
		
		if (!empty($conf->user)) {
			$mail->SMTPAuth = TRUE;
			$mail->Username = $conf->user;
			$mail->Password = base64_decode($conf->password);
		} else
			$mail->SMTPAuth = FALSE;

		if ($conf->secure) {
			$mail->SMTPSecure = 'ssl';
			$mail->Port = 465;
		}

		$mail->setFrom($conf->sender, 'Web');
		$mail->addAddress($conf->recipient);
		$mail->isHTML(TRUE);
		$mail->Subject = s('New customer request');
		$mail->Body = '<pre>'. print_r($_REQUEST, TRUE) .'</pre>';

		if (!$mail->send())
			throw new Exception ($mail->ErrorInfo);

		return TRUE;
	}
}