Skip to content

Commit

Permalink
Web interface. All done. Repack assets. fintech-fab#12
Browse files Browse the repository at this point in the history
  • Loading branch information
devpull committed Sep 4, 2014
1 parent 64fd0ee commit 4b05da1
Show file tree
Hide file tree
Showing 18 changed files with 289 additions and 85 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php namespace FintechFab\ActionsCalc;

use App;
use Illuminate\Support\ServiceProvider;

class ActionsCalcServiceProvider extends ServiceProvider
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,6 @@ public static function isClientRegistered()

$terminal = Terminal::find($iClientId, ['id']);

return (!is_null($terminal));
return !(is_null($terminal));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,14 @@ public function sendHttpToQueue($url, $iSignalId)
*/
public function resultToQueue($foreign_job, $foreign_queue, $signalSid)
{
Queue::connection('ff-actions-calc-result')->push(ToForeign::class, [
Queue::connection('ff-actions-calc')->push(ToForeign::class, [
'sSignalSid' => $signalSid,
'sForeignQueue' => $foreign_queue,
'sForeignJob' => $foreign_job,
'sResultHash' => $this->_sResultHash,
]);

Log::info('Queue: resultToQueue,');
Log::info('Queue: resultToQueue,', ['hash' => $this->_sResultHash]);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,18 @@ public static function getSignalValidator()
'terminal_id' => 'integer',
];
}

public static function getTerminalValidators()
{
return [
'id' => 'integer|unique:terminals',
'name' => 'required',
'url' => 'required|url',
'foreign_queue' => '',
'foreign_job' => '',
'key' => 'alpha_num',
'password' => 'required|confirmed',
'password_confirmation' => 'required'
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,15 @@
* @property string $updated_at
*
* @method static Signal whereSignalId()
* @method static Signal whereTerminalId()
*/
class Signal extends Eloquent
{
protected $connection = 'ff-actions-calc';
protected $table = 'signals';
protected $fillable = ['id', 'name', 'terminal_id', 'signal_sid'];

public function terminal()
public function terminal() // TODO: events for certain terminal.
{
$this->belongsTo('Terminal', 'terminal_id');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ class Terminal extends Eloquent
*
* @return mixed
*/
public function getEventsAttribute() {
return $this->events()->paginate(10);
public function getEventsAttribute()
{
return $this->events()->paginate(10);
}

public function rules()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public function fire(Job $job, $aData)
}

Log::info('Job release. Attempts: ' . $job->attempts(), $aData);
$job->release(5); // 60
$job->release(60);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion workbench/fintech-fab/actions-calc/src/config/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
*/

return [
'terminal_id' => 1,
'terminal_id' => 2,
];
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,56 @@

namespace FintechFab\ActionsCalc\Controllers;

use Config;
use FintechFab\ActionsCalc\Components\Validators;
use FintechFab\ActionsCalc\Models\Terminal;
use Hash;
use Input;
use Redirect;
use Validator;
use Request;

/**
* Class AuthController
*
* @author Ulashev Roman <truetamtam@gmail.com>
*/
class AuthController extends BaseController
{
protected $layout = 'main';

/**
* Registering new client
*/
public function registration()
{
return 'registration page';
$iTerminalId = Config::get('ff-actions-calc::terminal_id');

// view form on GET
if (Request::isMethod('GET')) {
return $this->make('auth.registration', ['terminal_id' => $iTerminalId]);
}

// data
$aRequestData = Input::all();

// validation
$validator = Validator::make($aRequestData, Validators::getTerminalValidators());

if ($validator->fails()) {
$iTerminalId = Config::get('ff-actions-calc::terminal_id');
$aRequestData['id'] = $iTerminalId;

return Redirect::to(route('auth.registration'))->withInput($aRequestData)->withErrors($validator);
}

// data valid
$aRequestData['password'] = Hash::make($aRequestData['password']);
$aRequestData['key'] = (strlen($aRequestData['key']) < 1) ?
sha1($aRequestData['name'] . microtime(true) . rand(10000, 90000)) : $aRequestData['key'];

Terminal::create($aRequestData);

return Redirect::route('calc.manage');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace FintechFab\ActionsCalc\Controllers;

use App;
use Controller;
use View;
use Request;
Expand All @@ -18,6 +19,9 @@ class BaseController extends Controller
*/
private $sLayoutFolderName = 'default';

/**
*
*/
public function __construct()
{
$this->iTerminalId = Config::get('ff-actions-calc::terminal_id');
Expand All @@ -29,7 +33,6 @@ public function __construct()
protected function setupLayout()
{
if (!is_null($this->layout)) {
$this->sLayoutFolderName = $this->layout;
$this->layout = View::make('ff-actions-calc::layouts.' . $this->layout);
}
}
Expand All @@ -45,7 +48,7 @@ protected function make($sTemplate, $aParams = array())
if (Request::ajax()) {
return $this->makePartial($sTemplate, $aParams);
} else {
return $this->layout->nest('content', $this->sLayoutFolderName . '.' . $sTemplate, $aParams);
return $this->layout->nest('content', 'ff-actions-calc::' . $sTemplate, $aParams);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,14 @@ public function update($id)
public function delete()
{
$aRequest = Input::only('id');

/** @var Event $event */
$event = Event::find((int)$aRequest['id']);

if ($event->rules->count() > 0) {
return ['status' => 'error', 'message' => 'Сначала удалите правила'];
}

if ($event->delete()) {
return json_encode(['status' => 'success', 'message' => 'Событие удалено.']);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class RuleController extends BaseController
public function create()
{
if (Request::isMethod('GET')) {
$signals = Signal::all(['id', 'signal_sid', 'name']);
$signals = Signal::whereTerminalId($this->iTerminalId)->get(['id', 'name', 'signal_sid']);

return View::make('ff-actions-calc::rule.create', compact('signals'));
}
Expand Down Expand Up @@ -68,9 +68,10 @@ public function update($id)
{
/** @var Rule $oRule */
$oRule = Rule::find($id);
$aoSignals = Signal::whereTerminalId($this->iTerminalId)->get(['id', 'name', 'signal_sid']);

if (Request::isMethod('GET')) {
return View::make('ff-actions-calc::rule.update', ['rule' => $oRule]);
return View::make('ff-actions-calc::rule.update', ['rule' => $oRule, 'signals' => $aoSignals]);
}

// update process
Expand Down
5 changes: 3 additions & 2 deletions workbench/fintech-fab/actions-calc/src/filters.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@

use FintechFab\ActionsCalc\Components\AuthHandler;

Route::filter('ff.actions-calc.basic.auth', function () {
Route::filter('ff-actions-calc.auth', function () {

if (AuthHandler::isClientRegistered() === false) {
return Redirect::route('registration');
return Redirect::route('auth.registration');
}
});
134 changes: 71 additions & 63 deletions workbench/fintech-fab/actions-calc/src/routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,72 +5,80 @@
* @author Ulashev Roman <truetamtam@gmail.com>
*/

Route::get('/actions-calc/manage', [
'uses' => 'FintechFab\ActionsCalc\Controllers\ManageController@manage'
]);

// signals
Route::resource('signal', 'FintechFab\ActionsCalc\Controllers\SignalController');

// events
// delete event //TODO: check if user allowed to do sturff. Through filter.
Route::post('/actions-calc/event/delete', [
'as' => 'event.delete',
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@delete'
]);
// update event
Route::match(['POST', 'GET'], '/actions-calc/event/update/{id?}', [
'as' => 'event.update',
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@update',
])->where('id', '[0-9]+');
// create event
Route::post('/actions-calc/event/create', [
'as' => 'event.create',
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@create'
]);
// events table pagination
Route::get('/actions-calc/events/table{page?}', [
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@updateEventsTable',
]);
// events search
Route::get('actions-calc/event/search', [
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@search',
]);

// events -> rules:
// get events rules
Route::post('/actions-calc/manage/get-event-rules', [
'uses' => 'FintechFab\ActionsCalc\Controllers\ManageController@getEventRules'
]);
// toggle events rules flag
Route::post('/actions-calc/manage/toggle-rule-flag', [
'uses' => 'FintechFab\ActionsCalc\Controllers\ManageController@toggleRuleFlag'
]);
// event -> rules:
// rule create
Route::match(['GET', 'POST'], '/actions-calc/rule/create', [
'as' => 'rule.create',
'uses' => 'FintechFab\ActionsCalc\Controllers\RuleController@create',
]);
// event -> rules:
// rule update
Route::match(['POST', 'GET'], '/actions-calc/rule/update/{id?}', [
'as' => 'rule.update',
'uses' => 'FintechFab\ActionsCalc\Controllers\RuleController@update',
])->where('id', '[0-9]+');
// event -> rules:
// rule delete
Route::post('/actions-calc/rule/delete/{id}', [
'as' => 'rule.delete',
'uses' => 'FintechFab\ActionsCalc\Controllers\RuleController@delete'
])->where('id', '[0-9]+');

// main entry point
Route::post('actions-calc', [
'as' => 'getRequest',
'uses' => 'FintechFab\ActionsCalc\Controllers\RequestController@getRequest',
]);

Route::get('actions-calc/register', [
'uses' => 'FintechFab\ActionsCalc\Controllers\AuthController@register'
]);
// auth
Route::any('/actions-calc/registration', [
'as' => 'auth.registration',
'uses' => 'FintechFab\ActionsCalc\Controllers\AuthController@registration'
]);

Route::group(['before' => 'ff-actions-calc.auth'], function () {

// signals
Route::resource('signal', 'FintechFab\ActionsCalc\Controllers\SignalController');

// events
// delete event
Route::post('/actions-calc/event/delete', [
'as' => 'event.delete',
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@delete'
]);
// update event
Route::match(['POST', 'GET'], '/actions-calc/event/update/{id?}', [
'as' => 'event.update',
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@update',
])->where('id', '[0-9]+');
// create event
Route::post('/actions-calc/event/create', [
'as' => 'event.create',
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@create'
]);
// events table pagination
Route::get('/actions-calc/events/table{page?}', [
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@updateEventsTable',
]);
// events search
Route::get('actions-calc/event/search', [
'uses' => 'FintechFab\ActionsCalc\Controllers\EventController@search',
]);

// events -> rules:
// get events rules
Route::post('/actions-calc/manage/get-event-rules', [
'uses' => 'FintechFab\ActionsCalc\Controllers\ManageController@getEventRules'
]);
// toggle events rules flag
Route::post('/actions-calc/manage/toggle-rule-flag', [
'uses' => 'FintechFab\ActionsCalc\Controllers\ManageController@toggleRuleFlag'
]);
// event -> rules:
// rule create
Route::match(['GET', 'POST'], '/actions-calc/rule/create', [
'as' => 'rule.create',
'uses' => 'FintechFab\ActionsCalc\Controllers\RuleController@create',
]);
// event -> rules:
// rule update
Route::match(['POST', 'GET'], '/actions-calc/rule/update/{id?}', [
'as' => 'rule.update',
'uses' => 'FintechFab\ActionsCalc\Controllers\RuleController@update',
])->where('id', '[0-9]+');
// event -> rules:
// rule delete
Route::post('/actions-calc/rule/delete/{id}', [
'as' => 'rule.delete',
'uses' => 'FintechFab\ActionsCalc\Controllers\RuleController@delete'
])->where('id', '[0-9]+');

// managing all records
Route::get('/actions-calc/manage', [
'as' => 'calc.manage',
'uses' => 'FintechFab\ActionsCalc\Controllers\ManageController@manage'
]);

});
Loading

0 comments on commit 4b05da1

Please sign in to comment.