| @ -0,0 +1,91 @@ | |||
| <?php | |||
| namespace App\Commands; | |||
| use Illuminate\Console\Scheduling\Schedule; | |||
| use LaravelZero\Framework\Commands\Command; | |||
| use PhpSchool\CliMenu\Builder\CliMenuBuilder; | |||
| use PhpSchool\CliMenu\CliMenu; | |||
| class AdminLogsCommand extends Command | |||
| { | |||
| /** | |||
| * The signature of the command. | |||
| * | |||
| * @var string | |||
| */ | |||
| protected $signature = 'admin:logs'; | |||
| /** | |||
| * The description of the command. | |||
| * | |||
| * @var string | |||
| */ | |||
| protected $description = 'Command description'; | |||
| /** | |||
| * | |||
| * | |||
| */ | |||
| private function addInputItem() | |||
| { | |||
| $callable = function(CliMenu $menu) | |||
| { | |||
| $input = $menu->askText(); | |||
| $result = $input->ask(); | |||
| $menu->redraw(); | |||
| }; | |||
| return $callable; | |||
| } | |||
| /** | |||
| * | |||
| * | |||
| */ | |||
| private function addCreateItem() | |||
| { | |||
| $menu = function(CliMenuBuilder $builder) | |||
| { | |||
| $data = []; | |||
| $builder | |||
| ->setTitle('Settings > Add') | |||
| ->disableDefaultItems() | |||
| // input name | |||
| ->addItem('name', $this->addInputItem()) | |||
| // input url | |||
| ->addItem('url', $this->addInputItem()) | |||
| ->addItem('handler', $this->addInputItem()) | |||
| ->addLineBreak('-') | |||
| ->addSubMenu('actions', $this->addActions()) | |||
| ->addLineBreak('-'); | |||
| }; | |||
| return $menu; | |||
| } | |||
| /** | |||
| * Execute the console command. | |||
| * | |||
| * @return mixed | |||
| */ | |||
| public function handle() | |||
| { | |||
| // create menu | |||
| $builder = $this->menu('Settings'); | |||
| $builder | |||
| ->addSubMenu('Add', $this->addCreateItem()) | |||
| ->addLineBreak('-'); | |||
| $mainmenu = $builder->build(); | |||
| $mainmenu->open(); | |||
| } | |||
| } | |||
| @ -0,0 +1,91 @@ | |||
| <?php | |||
| namespace App\Commands; | |||
| use Illuminate\Console\Scheduling\Schedule; | |||
| use LaravelZero\Framework\Commands\Command; | |||
| use PhpSchool\CliMenu\Builder\CliMenuBuilder; | |||
| use PhpSchool\CliMenu\CliMenu; | |||
| class AdminSourcesCommand extends Command | |||
| { | |||
| /** | |||
| * The signature of the command. | |||
| * | |||
| * @var string | |||
| */ | |||
| protected $signature = 'admin:sources'; | |||
| /** | |||
| * The description of the command. | |||
| * | |||
| * @var string | |||
| */ | |||
| protected $description = 'Command description'; | |||
| /** | |||
| * | |||
| * | |||
| */ | |||
| private function addInputItem() | |||
| { | |||
| $callable = function(CliMenu $menu) | |||
| { | |||
| $input = $menu->askText(); | |||
| $result = $input->ask(); | |||
| $menu->redraw(); | |||
| }; | |||
| return $callable; | |||
| } | |||
| /** | |||
| * | |||
| * | |||
| */ | |||
| private function addCreateItem() | |||
| { | |||
| $menu = function(CliMenuBuilder $builder) | |||
| { | |||
| $data = []; | |||
| $builder | |||
| ->setTitle('Settings > Add') | |||
| ->disableDefaultItems() | |||
| // input name | |||
| ->addItem('name', $this->addInputItem()) | |||
| // input url | |||
| ->addItem('url', $this->addInputItem()) | |||
| ->addItem('handler', $this->addInputItem()) | |||
| ->addLineBreak('-') | |||
| ->addSubMenu('actions', $this->addActions()) | |||
| ->addLineBreak('-'); | |||
| }; | |||
| return $menu; | |||
| } | |||
| /** | |||
| * Execute the console command. | |||
| * | |||
| * @return mixed | |||
| */ | |||
| public function handle() | |||
| { | |||
| // create menu | |||
| $builder = $this->menu('Settings'); | |||
| $builder | |||
| ->addSubMenu('Add', $this->addCreateItem()) | |||
| ->addLineBreak('-'); | |||
| $mainmenu = $builder->build(); | |||
| $mainmenu->open(); | |||
| } | |||
| } | |||
| @ -1,43 +0,0 @@ | |||
| <?php | |||
| namespace App\Commands; | |||
| use Illuminate\Console\Scheduling\Schedule; | |||
| use LaravelZero\Framework\Commands\Command; | |||
| class SettingsMenuCommand extends Command | |||
| { | |||
| /** | |||
| * The signature of the command. | |||
| * | |||
| * @var string | |||
| */ | |||
| protected $signature = 'settings:menu'; | |||
| /** | |||
| * The description of the command. | |||
| * | |||
| * @var string | |||
| */ | |||
| protected $description = 'Command description'; | |||
| /** | |||
| * Execute the console command. | |||
| * | |||
| * @return mixed | |||
| */ | |||
| public function handle() | |||
| { | |||
| // create menu | |||
| $builder = $this->menu('Settings') | |||
| ->addSubMenu('Sources', [ | |||
| 'd', | |||
| 'e' | |||
| ]); | |||
| $builder->addLineBreak('-'); | |||
| $mainmenu = $builder->build(); | |||
| $mainmenu->open(); | |||
| } | |||
| } | |||
| @ -0,0 +1,26 @@ | |||
| <?php | |||
| namespace App\ResponseHandler; | |||
| use App\Handlers\Handler; | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| */ | |||
| class ActionHandler extends Handler implements ActionHandlerInterface | |||
| { | |||
| protected $data; | |||
| /** | |||
| * | |||
| * @param mixed $data | |||
| * | |||
| */ | |||
| public function __construct($data) | |||
| { | |||
| $this->data = $data; | |||
| } | |||
| } | |||
| @ -1,11 +0,0 @@ | |||
| <?php | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| */ | |||
| class FileMoveActionHandler extends ActionHandler { | |||
| } | |||
| @ -0,0 +1,42 @@ | |||
| <?php | |||
| namespace App\Handlers; | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| */ | |||
| abstract class Handler | |||
| { | |||
| /** | |||
| * | |||
| * | |||
| * @param String $className | |||
| * @return Mixed | |||
| * | |||
| */ | |||
| protected function getHandlerClass(String $className) | |||
| { | |||
| $result = NULL; | |||
| // create class | |||
| $class = 'App\\Handlers\\'.$className); | |||
| // if not found check for custom handlers | |||
| if (class_exists($class)) { | |||
| $result = new $class(); | |||
| } else { | |||
| // create class | |||
| $class = 'CustomHandlers\\'.$className; | |||
| if (class_exists($class)) { | |||
| $result = new $class(); | |||
| } | |||
| } | |||
| return $result; | |||
| } | |||
| } | |||
| @ -0,0 +1,20 @@ | |||
| <?php | |||
| namespace App\Models; | |||
| use Illuminate\Database\Eloquent\Model; | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| */ | |||
| class Action extends Model | |||
| { | |||
| protected $fillable = [ | |||
| 'action_handler_class', | |||
| 'priority', | |||
| 'source_id' | |||
| ]; | |||
| } | |||
| @ -0,0 +1,19 @@ | |||
| <?php | |||
| namespace App\Models; | |||
| use Illuminate\Database\Eloquent\Model; | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| */ | |||
| class Log extends Model | |||
| { | |||
| protected $fillable = [ | |||
| 'message', | |||
| 'state' | |||
| ]; | |||
| } | |||
| @ -1,13 +1,20 @@ | |||
| <?php | |||
| namespace App\Models; | |||
| use Illuminate\Database\Eloquent\Model; | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| * | |||
| */ | |||
| class Source | |||
| class Source extends Model | |||
| { | |||
| protected $fillable = [ | |||
| 'name', | |||
| 'url', | |||
| 'response_handler_class' | |||
| ]; | |||
| } | |||
| @ -0,0 +1,13 @@ | |||
| <?php | |||
| namespace CustomHandlers\Actions; | |||
| /** | |||
| * | |||
| * | |||
| * | |||
| */ | |||
| class FileMove extends ActionHandler { | |||
| } | |||