%PDF- %PDF-
Direktori : /home/graphicd/public_html/vebto/common/Settings/Validators/ |
Current File : /home/graphicd/public_html/vebto/common/Settings/Validators/QueueCredentialsValidator.php |
<?php namespace Common\Settings\Validators; use Config; use Queue; use Exception; use Illuminate\Support\Arr; class QueueCredentialsValidator { const KEYS = [ 'queue_driver', // sqs 'SQS_QUEUE_KEY', 'SQS_QUEUE_SECRET', 'SQS_QUEUE_PREFIX', 'SQS_QUEUE_NAME', 'SQS_QUEUE_REGION', ]; public function fails($settings) { $this->setConfigDynamically($settings); $driver = Arr::get($settings, 'queue_driver', config('queue.default')); try { Queue::connection($driver)->size(); } catch (Exception $e) { return $this->getErrorMessage($e, $driver); } } private function setConfigDynamically($settings) { foreach ($settings as $key => $value) { // SQS_QUEUE_KEY => sqs.queue.key $key = strtolower(str_replace('_', '.', $key)); // sqs.queue.key => sqs.key $key = str_replace('queue.', '', $key); $key = str_replace('name', 'queue', $key); Config::set("queue.connections.$key", $value); } } /** * @param Exception $e * @param string $driver * @return array */ private function getErrorMessage($e, $driver) { return ['queue_group' => "Could not change queue driver to <strong>$driver</strong>.<br> {$e->getMessage()}"]; } }