Add demo task, and declare composer info
This commit is contained in:
		
							parent
							
								
									b832fc3604
								
							
						
					
					
						commit
						7e0de111c8
					
				
					 4 changed files with 7090 additions and 27 deletions
				
			
		
							
								
								
									
										26
									
								
								composer.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								composer.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
{
 | 
			
		||||
    "name": "rattail/corepos-demo-poser",
 | 
			
		||||
    "description": "Poser demo for CORE-POS",
 | 
			
		||||
    "license": "GPL-3.0-or-later",
 | 
			
		||||
    "authors": [
 | 
			
		||||
        {
 | 
			
		||||
            "name": "Lance Edgar",
 | 
			
		||||
            "email": "lance@edbob.org"
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "require": {
 | 
			
		||||
        "wikimedia/composer-merge-plugin": "^2.1",
 | 
			
		||||
        "rattail/posterior": "^0.1.1"
 | 
			
		||||
    },
 | 
			
		||||
    "extra": {
 | 
			
		||||
        "merge-plugin": {
 | 
			
		||||
            "require": [
 | 
			
		||||
                "../IS4C/composer.json"
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    },
 | 
			
		||||
    "config": {
 | 
			
		||||
        "component-dir": "../IS4C/fannie/src/javascript/composer-components",
 | 
			
		||||
        "vendor-dir": "../IS4C/vendor"
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6987
									
								
								composer.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6987
									
								
								composer.lock
									
										
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
				
			
			@ -1,33 +1,29 @@
 | 
			
		|||
<?php
 | 
			
		||||
/*******************************************************************************
 | 
			
		||||
 | 
			
		||||
    Copyright 2014 Whole Foods Co-op
 | 
			
		||||
 | 
			
		||||
    This file is part of IT CORE.
 | 
			
		||||
 | 
			
		||||
    IT CORE is free software; you can redistribute it and/or modify
 | 
			
		||||
    it under the terms of the GNU General Public License as published by
 | 
			
		||||
    the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
    (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
    IT CORE is distributed in the hope that it will be useful,
 | 
			
		||||
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License
 | 
			
		||||
    in the file license.txt along with IT CORE; if not, write to the Free Software
 | 
			
		||||
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 | 
			
		||||
 | 
			
		||||
*********************************************************************************/
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
*/
 | 
			
		||||
class PoserDemo extends COREPOS\Fannie\API\FanniePlugin
 | 
			
		||||
{
 | 
			
		||||
    public $plugin_description = 'Plugin to demo Poser customization';
 | 
			
		||||
    public $plugin_settings = array(
 | 
			
		||||
        'Foo' => array('default'=>'Bar', 'label'=>'Foo',
 | 
			
		||||
                            'description'=>'Some important foo-related setting'),
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    public $plugin_settings = [
 | 
			
		||||
 | 
			
		||||
        'PoserDemoTailboneAPIURL' => [
 | 
			
		||||
            'label' => 'Tailbone API URL',
 | 
			
		||||
            'description' => 'Base URL for Tailbone API (usually ends with /api)',
 | 
			
		||||
        ],
 | 
			
		||||
 | 
			
		||||
        'PoserDemoTailboneAPIToken' => [
 | 
			
		||||
            'label' => 'Tailbone API Token',
 | 
			
		||||
            'description' => 'User auth token for use with Tailbone API',
 | 
			
		||||
        ],
 | 
			
		||||
 | 
			
		||||
        'PoserDemoTailboneAPIVerifySSL' => [
 | 
			
		||||
            'label' => 'Verify SSL',
 | 
			
		||||
            'description' => 'Validate SSL cert used by Tailbone API?',
 | 
			
		||||
            'options' => [
 | 
			
		||||
                "Yes, validate the SSL cert" => 'true',
 | 
			
		||||
                "No, do not validate the SSL cert (SHOULD ONLY BE USED FOR TESTING!)" => 'false',
 | 
			
		||||
            ],
 | 
			
		||||
            'default'=>'true',
 | 
			
		||||
        ],
 | 
			
		||||
    ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										54
									
								
								office_plugins/PoserDemo/PoserDemoTask.php
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								office_plugins/PoserDemo/PoserDemoTask.php
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
<?php
 | 
			
		||||
 | 
			
		||||
class PoserDemoTask extends FannieTask
 | 
			
		||||
{
 | 
			
		||||
    public $name = 'Poser Demo';
 | 
			
		||||
 | 
			
		||||
    public $description = 'Demo command that tries to connect to
 | 
			
		||||
Tailbone API, and reports success/failure.
 | 
			
		||||
 | 
			
		||||
NOTE: This task is provided by the PoserDemo plugin;
 | 
			
		||||
please see that for settings to control behavior.';
 | 
			
		||||
 | 
			
		||||
    public $default_schedule = array(
 | 
			
		||||
        'min' => 0,
 | 
			
		||||
        'hour' => 5,
 | 
			
		||||
        'day' => '*',
 | 
			
		||||
        'month' => '*',
 | 
			
		||||
        'weekday' => '*',
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    public function run()
 | 
			
		||||
    {
 | 
			
		||||
        $this->cronMsg("hello from PoserDemo!", FannieLogger::INFO);
 | 
			
		||||
 | 
			
		||||
        $settings = $this->config->get('PLUGIN_SETTINGS');
 | 
			
		||||
 | 
			
		||||
        $url = $settings['PoserDemoTailboneAPIURL'];
 | 
			
		||||
        if (!$url) {
 | 
			
		||||
            $this->cronMsg("must define the Tailbone API URL", FannieLogger::ERROR);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $token = $settings['PoserDemoTailboneAPIToken'];
 | 
			
		||||
        if (!$token) {
 | 
			
		||||
            $this->cronMsg("must define the Tailbone API token", FannieLogger::ERROR);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $verifySSL = $settings['PoserDemoTailboneAPIVerifySSL'] === 'false' ? false : true;
 | 
			
		||||
 | 
			
		||||
        $posterior = new \Rattail\Posterior\Client($url, $token, $verifySSL);
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            $response = $posterior->get('/about');
 | 
			
		||||
        } catch (Exception $e) {
 | 
			
		||||
            $this->cronMsg($e, FannieLogger::ERROR);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $body = $response->getBody();
 | 
			
		||||
        $this->cronMsg("response body was: $body", FannieLogger::INFO);
 | 
			
		||||
        print("$body\n");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue