Beispiel #1
0
 * /plugin/star
 */
use API\Core\Tool;
use API\Core\Mailer;
use Illuminate\Database\Capsule\Manager as DB;
use API\Model\Message;
use ReCaptcha\ReCaptcha;
use API\OAuthServer\OAuthHelper;
use API\Exception\InvalidField;
use API\Exception\MissingField;
use API\Exception\InvalidRecaptcha;
require dirname(__FILE__) . '/../../config.php';
$send = Tool::makeEndpoint(function () use($app) {
    OAuthHelper::needsScopes(['message']);
    $msg_alerts_settings = Tool::getConfig()['msg_alerts'];
    $body = Tool::getBody();
    $fields = ['firstname', 'lastname', 'email', 'subject', 'message'];
    $recaptcha = new ReCaptcha(Tool::getConfig()['recaptcha_secret']);
    $resp = $recaptcha->verify($body->recaptcha_response);
    if (!$resp->isSuccess()) {
        throw new InvalidRecaptcha();
    }
    foreach ($fields as $prop) {
        if (!property_exists($body->contact, $prop)) {
            throw new MissingField($prop);
        } else {
            switch ($prop) {
                case 'email':
                    if (gettype($body->contact->email) != 'string' || !filter_var($body->contact->email, FILTER_VALIDATE_EMAIL)) {
                        throw new InvalidField('email');
                    }