Exemplo n.º 1
0
 public function runBatch()
 {
     $results = [];
     /**
      * @var $message IProcessMessage
      */
     foreach ($this->_batch as $taskId => $message) {
         $cid = $message->getInt('campaignId');
         $started = $message->getInt('startedAt');
         $lastSent = $message->getInt('lastSent', 0);
         $startId = $message->getInt('startId', null);
         $endId = $message->getInt('endId', 0);
         $additionalData = $message->getRaw('additionalData', null);
         $campaign = new Campaign($cid);
         $dataSource = $campaign->getDataSource();
         if ($startId == null) {
             $startId = $dataSource->getLastId($cid, $taskId);
         }
         try {
             $dataSource->process($taskId, $cid, $started, $lastSent, $startId, $endId, $additionalData);
             $results[$taskId] = true;
         } catch (\Exception $e) {
             Log::error('Campaign ' . $cid . ': ' . $e->getMessage());
             $results[$taskId] = false;
         }
     }
     $this->_batch = [];
     return $results;
 }
Exemplo n.º 2
0
 public function renderIndex()
 {
     $campaign = new Campaign($this->getInt('id'));
     $dataSource = $campaign->getDataSource();
     $dataSource->setExists();
     $form = (new DeferoForm('source'))->bindMapper($dataSource);
     foreach ($dataSource->getFixedProperties() as $name => $value) {
         $form->get($name)->addAttribute('disabled');
     }
     $dataSource->configureForm($form, $campaign);
     if ($post = $this->request()->postVariables()) {
         $form->hydrate($post);
         if ($form->isValid() && $form->csrfCheck()) {
             $dataSource->hydrate($form->jsonSerialize());
             $campaign->dataSourceOptions = $dataSource->jsonSerialize();
             $campaign->getAttribute('dataSourceOptions')->setModified();
             $campaign->saveChanges();
             $msg = 'Data Source Saved';
             return Redirect::to('/campaigns/' . $campaign->id())->with("msg", new TransportMessage("info", $msg));
         }
     }
     return new CampaignSourceView($form);
 }