Swiftriver\Core\Modules\DataContext\MySql_V2\DataContext::SaveChannels PHP Method

SaveChannels() public static method

Adds a list of new Channels to the data store
public static SaveChannels ( $channels )
    public static function SaveChannels($channels)
    {
        $logger = \Swiftriver\Core\Setup::GetLogger();
        $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [Method Invoked]", \PEAR_LOG_DEBUG);
        if (!\is_array($channels) || count($channels) < 1) {
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [No channels supplied]", \PEAR_LOG_DEBUG);
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [Method finished]", \PEAR_LOG_DEBUG);
            return;
        }
        $sql = "CALL SC_SaveChannel ( :id, :type, :subType, :active, :inProcess, :nextRun, :json)";
        try {
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [START: Connecting to db via PDO]", \PEAR_LOG_DEBUG);
            $db = self::PDOConnection();
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [END: Connecting to db via PDO]", \PEAR_LOG_DEBUG);
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [START: Preparing PDO statment]", \PEAR_LOG_DEBUG);
            $statement = $db->prepare($sql);
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [END: Preparing PDO statment]", \PEAR_LOG_DEBUG);
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [START: Looping through channels]", \PEAR_LOG_DEBUG);
            foreach ($channels as $channel) {
                $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [START: Executing PDO statement for channel]", \PEAR_LOG_DEBUG);
                $parameters = array("id" => $channel->id, "type" => $channel->type, "subType" => $channel->subType, "active" => $channel->active, "inProcess" => $channel->inprocess, "nextRun" => $channel->nextrun, "json" => \json_encode($channel));
                $result = $statement->execute($parameters);
                if ($result === false) {
                    $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [An Exception was thrown by the PDO framwork]", \PEAR_LOG_ERR);
                    $errorInfo = $statement->errorInfo();
                    $errorMessage = $errorInfo[2];
                    $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [{$errorMessage}]", \PEAR_LOG_ERR);
                }
                $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [END: Executing PDO statement for channel]", \PEAR_LOG_DEBUG);
            }
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [END: Looping through channels]", \PEAR_LOG_DEBUG);
            $db = null;
        } catch (\PDOException $e) {
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [An exception was thrown]", \PEAR_LOG_ERR);
            $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [{$e}]", \PEAR_LOG_ERR);
        }
        $logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::SaveChannels [Method Finished]", \PEAR_LOG_DEBUG);
    }