Made a cron controller.

This commit is contained in:
James Cole
2015-07-22 19:09:17 +02:00
parent 868fe46932
commit faa128d41e
5 changed files with 65 additions and 37 deletions

View File

@@ -18,4 +18,7 @@ EMAIL_PASSWORD=
ANALYTICS_ID=
EMAIL_PRETEND=false
RUNCLEANUP=true
SITE_OWNER=mail@example.com
SITE_OWNER=mail@example.com
SENDGRID_USERNAME=
SENDGRID_PASSWORD=

View File

@@ -0,0 +1,50 @@
<?php
namespace FireflyIII\Http\Controllers;
use FireflyIII\User;
/**
* Class WebhookController
*
* @package FireflyIII\Http\Controllers
*/
class CronController extends Controller
{
/**
*
*/
public function sendgrid()
{
$URL = 'https://api.sendgrid.com/api/bounces.get.json';
$parameters = [
'api_user' => env('SENDGRID_USERNAME'),
'api_key' => env('SENDGRID_PASSWORD'),
'date' => 1,
'days' => 7
];
$fullURL = $URL . '?' . http_build_query($parameters);
$data = json_decode(file_get_contents($fullURL));
$users = [];
// loop the result, if any.
if (is_array($data)) {
foreach ($data as $entry) {
$address = $entry->email;
$users[] = User::where('email', $address);
}
}
/** @var User $user */
foreach($users as $user) {
if($user) {
// block because bounce.
}
}
}
}

View File

@@ -1,27 +0,0 @@
<?php
namespace FireflyIII\Http\Controllers;
use Log;
/**
* Class WebhookController
*
* @package FireflyIII\Http\Controllers
*/
class WebhookController extends Controller
{
/**
*
*/
public function sendgrid()
{
var_dump($_POST);
Log::debug(print_r($_POST, true));
Log::debug(print_r($_GET, true));
Log::debug(print_r($_SERVER, true));
}
}

View File

@@ -13,13 +13,11 @@ class VerifyCsrfToken extends BaseVerifier
{
/**
* Routes we want to exclude.
* Routes we want to exclude from CSRF.
*
* @var array
*/
protected $routes = [
'hook/sendgrid',
];
protected $routes = [];
/**
* Handle an incoming request.
@@ -31,23 +29,27 @@ class VerifyCsrfToken extends BaseVerifier
*/
public function handle($request, Closure $next)
{
if($this->excludedRoutes($request)) {
if ($this->excludedRoutes($request)) {
return $next($request);
}
return parent::handle($request, $next);
}
/**
* This will return a bool value based on route checking.
*
* @param Request $request
*
* @return boolean
*/
protected function excludedRoutes($request)
{
foreach($this->routes as $route)
if ($request->is($route))
foreach ($this->routes as $route) {
if ($request->is($route)) {
return true;
}
}
return false;
}

View File

@@ -158,7 +158,7 @@ Route::bind(
* Auth\AuthController
*/
Route::get('/register', ['uses' => 'Auth\AuthController@getRegister', 'as' => 'register']);
Route::post ('/hook/sendgrid', ['uses' => 'WebhookController@sendgrid']);
Route::get('/cron/sendgrid', ['uses' => 'CronController@sendgrid']);
Route::controllers(
[