/** * @return F4h_TicketConverter_Config */ public static function getInstance() { if (!self::$instance) { self::$instance = new F4h_TicketConverter_Config(); } return self::$instance; }
/** * @return bool|mixed */ protected function request() { $options = array(CURLOPT_URL => $this->getInputArgs(), CURLOPT_HTTPHEADER => array('Authorization: Basic ' . F4h_TicketConverter_Config::getInstance()->getAuthorizationString(), 'Content-Type: text/xml'), CURLOPT_RETURNTRANSFER => true); $requester = new F4h_TicketConverter_Jira_Request(); $requester->init($options); $response = $requester->execute(); $requester->close(); return $response; }
/** * @return F4h_TicketConverter_Data_Converter_Xsl_ToFo|F4h_TicketConverter_Data_Converter_Xsl_ToHtml */ public static function getConverter() { switch (F4h_TicketConverter_Config::getInstance()->getOutputType()) { case F4h_TicketConverter_Config::OUTPUT_PDF: return new F4h_TicketConverter_Data_Converter_Xsl_ToFo(); break; case F4h_TicketConverter_Config::OUTPUT_HTML: return new F4h_TicketConverter_Data_Converter_Xsl_ToHtml(); break; } }
/** * @param array $input * @return F4h_TicketConverter_QueueBuilder_Cli_Csv_JiraExport|F4h_TicketConverter_QueueBuilder_Cli_Single|F4h_TicketConverter_QueueBuilder_Web_Link|F4h_TicketConverter_QueueBuilder_Web_List * @throws F4h_TicketConverter_QueueBuilder_Exception */ public static function getQueueBuilder(array $input) { // webinterface via link if (key_exists('link', $input)) { $input['link'] = trim($input['link']); $check = 'https://fashion4home.jira.com/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml'; if (strncmp($input['link'], $check, 88) === 0) { return new F4h_TicketConverter_QueueBuilder_Web_Link($input['link']); } else { throw new F4h_TicketConverter_QueueBuilder_Exception('Invalid URL'); } // webinterface via list of ids & project select-input } else { if (key_exists('project', $input) && key_exists('list', $input)) { $input['list'] = trim(preg_replace('/[^0-9\\s]/', '', $input['list'])); F4h_TicketConverter_Config::getInstance()->setProject($input['project']); return new F4h_TicketConverter_QueueBuilder_Web_List($input); // cli interface } else { if (key_exists('h', $input)) { throw new F4h_TicketConverter_QueueBuilder_Exception("---help---" . PHP_EOL . " usage: php ticketconverter.php [-s] -i [filename.csv | id]" . PHP_EOL . "\t\t\t -p\t define project, e.g DMF" . PHP_EOL . " -s set to single-input mode" . PHP_EOL . " -i declare input; value: filename required" . PHP_EOL . " in single-input mode: id required" . PHP_EOL); } //check for required parameter p if (!key_exists('p', $input)) { throw new F4h_TicketConverter_QueueBuilder_Exception("FAILURE: parameter -p is required." . PHP_EOL . "please define project" . PHP_EOL); } //check for required parameter i if (!key_exists('i', $input)) { throw new F4h_TicketConverter_QueueBuilder_Exception("FAILURE: parameter -i is required." . PHP_EOL . "for multi input via csv use: php ticketconverter.php -i filename.csv" . PHP_EOL . "for single input use: php ticketconverter.php -p project -s -i id" . PHP_EOL); } $inputValue = array('project' => $input['p'], 'ids' => $input['i']); //check if singlemode is set, if yes: build queue, if no: invoke queuebuilding switch (key_exists('s', $input)) { case true: return new F4h_TicketConverter_QueueBuilder_Cli_Single($inputValue); break; case false: if (!file_exists($inputValue)) { throw new F4h_TicketConverter_QueueBuilder_Exception("FAILURE: cannot find '" . $inputValue . "'"); } return F4h_TicketConverter_QueueBuilder_Cli_Factory::getQueueBuilder($inputValue); break; default: break; } } } }
/** * @param Exception $exception */ public static function log(Exception $exception) { $logFile = F4h_TicketConverter_Config::getInstance()->getLogFile(); $level = ''; switch ($exception->getCode()) { case self::FATAL: $level = 'FATAL'; break; case self::WARNING: $level = 'WARNING'; break; case self::NOTICE: $level = 'NOTICE'; break; default: $level = 'UNKNOWN EXCEPTION'; break; } $timestamp = date(DATE_ATOM, time()); $string = $timestamp . PHP_EOL . $level . ': ' . $exception->__toString() . PHP_EOL . PHP_EOL; file_put_contents($logFile, $string, FILE_APPEND); }
/** * @return bool * @throws Exception */ protected static function _checkApacheFop() { $path = F4h_TicketConverter_Config::getInstance()->getApacheFopPath(); $cliOutput = shell_exec($path . ' -version'); if (!$cliOutput) { throw new Exception('Apache FOP in ' . $path); } return true; }
/** * @return mixed */ protected function getMaskedUrl() { if (!$this->maskedUrl) { $this->maskedUrl = F4h_TicketConverter_Config::getInstance()->getMaskedTicketUrl(); } return $this->maskedUrl; }
/** * gives path to sqlite database * * @return string */ protected static function _getConnectionString() { $config = F4h_TicketConverter_Config::getInstance(); $path = $config->getApplicationPath() . self::DBPATH; return $path; }
/** * @return bool */ public function buildOutput() { $responseQueue = $this->getTicketQueue(); if (count($responseQueue) == 0) { F4h_TicketConverter_Runner::getMsgContainer()->clear(); F4h_TicketConverter_Runner::getMsgContainer()->push(new F4h_TicketConverter_Model_Message('Es wurden keine gültigen Ticketnummern eingegeben.', F4h_TicketConverter_Model_Message::ERROR)); return false; } foreach ($responseQueue as $ticket) { $ticket->save(); } //get serialized xml buffer $serializer = new F4h_TicketConverter_Data_Serializer(); $xmlString = $serializer->serialize($responseQueue); //convert $dom = new DOMDocument(); $dom->loadXML($xmlString); $converter = F4h_TicketConverter_Data_Converter_Factory::getConverter(); $converter->setStylesheet(F4h_TicketConverter_Config::getInstance()->getStylesheetPath()); $outputPath = $converter->convert($dom); return true; }
* (at your option) any later version. * * This program 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 * along with this program. If not, see <http://www.gnu.org/licenses/>. */ //register Autoloader class $path = dirname(__FILE__); require_once $path . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'Autoloader.php'; spl_autoload_register(array('Autoloader', 'load')); //set current ApplicationPath in Config Singleton $config = F4h_TicketConverter_Config::getInstance(); $config->setApplicationPath(dirname(dirname(__FILE__))); //set Environment & $_POST array $config->setEnvironment(F4h_TicketConverter_Config::ENV_CLI); $argv['s'] = ''; $argv['i'] = '4114'; $_SERVER['argv'] = $argv; $arguments = getopt('h::i:s'); echo var_dump($_SERVER['argv']); //register Exception Handler for uncaught exception set_exception_handler('F4h_TicketConverter_Log_Exception_Handler::trap'); //register Error Handler /** * @todo funktioniert der? */ set_error_handler('F4h_TicketConverter_Log_Error_Handler::trap', E_ALL);
/** * */ protected static function _response() { if (F4h_TicketConverter_Config::getInstance()->getEnvironment() === F4h_TicketConverter_Config::ENV_CLI) { //print collected messages foreach (self::getMsgContainer() as $message) { echo $message->getMessage() . PHP_EOL; } } else { foreach (self::getMsgContainer() as $message) { switch ($message->getType()) { case F4h_TicketConverter_Model_Message::SUCCESS: $_SESSION['success'] = $_SESSION['success'] . '<li>' . $message->getMessage() . '</li>'; break; case F4h_TicketConverter_Model_Message::NOTICE: $_SESSION['notices'] = $_SESSION['notices'] . '<li>' . $message->getMessage() . '</li>'; break; case F4h_TicketConverter_Model_Message::INFORMATIONAL: $_SESSION['informational'] = $_SESSION['informational'] . '<li>' . $message->getMessage() . '</li>'; break; case F4h_TicketConverter_Model_Message::ERROR: $_SESSION['errors'] = $_SESSION['errors'] . $message->getMessage() . '<br />'; break; } } header('Location: index.php'); } }
/** * @return null|string */ protected function _getNeededGroupForEnvironment() { $correctGroup = null; switch (F4h_TicketConverter_Config::getInstance()->getEnvironment()) { case F4h_TicketConverter_Config::ENV_WEB: $correctGroup = 'www-data'; break; case F4h_TicketConverter_Config::ENV_CLI: $output = array(); exec('whoami', $output); $correctGroup = $output[0]; break; } return $correctGroup; }