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

@@ -19,3 +19,6 @@ ANALYTICS_ID=
EMAIL_PRETEND=false EMAIL_PRETEND=false
RUNCLEANUP=true 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 * @var array
*/ */
protected $routes = [ protected $routes = [];
'hook/sendgrid',
];
/** /**
* Handle an incoming request. * Handle an incoming request.
@@ -31,23 +29,27 @@ class VerifyCsrfToken extends BaseVerifier
*/ */
public function handle($request, Closure $next) public function handle($request, Closure $next)
{ {
if($this->excludedRoutes($request)) { if ($this->excludedRoutes($request)) {
return $next($request); return $next($request);
} }
return parent::handle($request, $next); return parent::handle($request, $next);
} }
/** /**
* This will return a bool value based on route checking. * This will return a bool value based on route checking.
*
* @param Request $request * @param Request $request
*
* @return boolean * @return boolean
*/ */
protected function excludedRoutes($request) protected function excludedRoutes($request)
{ {
foreach($this->routes as $route) foreach ($this->routes as $route) {
if ($request->is($route)) if ($request->is($route)) {
return true; return true;
}
}
return false; return false;
} }

View File

@@ -158,7 +158,7 @@ Route::bind(
* Auth\AuthController * Auth\AuthController
*/ */
Route::get('/register', ['uses' => 'Auth\AuthController@getRegister', 'as' => 'register']); 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( Route::controllers(
[ [