<?php
namespace App\Helpers;

class GoogleHelper
{
    public static function checkRecaptcha($response, $action)
    {
        $parameters = http_build_query([
            'secret' => config('backoffice.recaptcha.private_key'),
            'remoteip' => request()->ip(),
            'response' => $response,
        ]);

        $url = 'https://www.google.com/recaptcha/api/siteverify?'.$parameters;
        $checkResponse = null;
        // prefer curl, but fall back to file_get_contents
        if ('curl' === config('backoffice.recaptcha.driver') && function_exists('curl_version')) {
            $curl = curl_init($url);
            curl_setopt($curl, CURLOPT_HEADER, false);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_TIMEOUT, config('backoffice.recaptcha.options.curl_timeout', 1));
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            $checkResponse = curl_exec($curl);
        } else {
            $checkResponse = file_get_contents($url);
        }
        if (is_null($checkResponse) || empty($checkResponse)) {
            return false;
        }
        $decodedResponse = json_decode($checkResponse, true);
        return $decodedResponse['success'] && $decodedResponse['action'] === $action;
    }
}
