/** * @param int $campaignId * @param int $startTime * @param int $startId * @param int $endId * @param null|array $additionalData * * @return bool * @throws \Exception */ public static function pushCampaign($campaignId, $startTime = null, $startId = null, $endId = null, $additionalData = null) { if ($startTime === null) { $startTime = time(); $startTime -= $startTime % 60; } $campaign = new Campaign($campaignId); $campaign->reload(); if (!$campaign->processors) { throw new \Exception('Cannot queue a Campaign with no Processors'); } $lastTime = $campaign->lastSent; if ($lastTime != $startTime) { $campaign->lastSent = $startTime; $campaign->saveChanges(); $message = new ProcessMessage(); $message->setData('campaignId', $campaignId); $message->setData('startedAt', $startTime); $message->setData('lastSent', $lastTime); $message->setData('startId', $startId); $message->setData('endId', $endId); if ($additionalData) { $message->setData('additionalData', $additionalData); } \Queue::setDefaultQueueProvider("campaignqueue"); \Queue::push(new StdQueue('defero_campaigns'), serialize($message)); \Log::info('Queued Campaign ' . $campaignId); return true; } \Log::info('Campaign ' . $campaignId . ' already queued' . ' ~ ' . $lastTime . ' ' . $startTime); return false; }
/** * @return int */ public function execute() { /*$campaignContact = new CampaignContact(); $campaignContact->campaignId = rand(1,9); $campaignContact->language = array_rand( ["en" => "en", "es" => "es", "de" => "de",] ); $campaignContact->contactId = rand(1,9); $campaignContact->saveChanges(); return 0;*/ $contact = new Contact(); $contact->name = "John Smith"; $contact->description = "John the test monkey"; $contact->email = "*****@*****.**"; $contact->jobTitle = "Test Monkey"; $contact->reference = "johnsmith"; $contact->signature = ' Kind Regards John Smith Test Monkey Cubex Tester 0123-456-789'; $contact->saveChanges(); $campaign = new Campaign(); $campaign->reference = "testcampaign:" . FileSystem::readRandomCharacters(3); $campaign->name = "Test Campaign"; $campaign->description = "A test created with sample data"; $campaign->active = true; $campaign->contactId = $contact->id(); $campaign->type = CampaignType::ACTION; $campaign->saveChanges(); $message = $campaign->message(); $message->setLanguage('en'); $message->subject = "This is my subject"; $message->plainText = "Hello {{name}}. how are you today?"; $message->saveAsNew(); $message->setLanguage('es'); $message->subject = "Este es mi tema"; $message->plainText = "Hola {{name}}. ¿Cómo estás hoy?"; $message->saveAsNew(); $message->setLanguage('de'); $message->subject = "Dies ist mein Thema"; $message->plainText = "Hallo {{name}}. Wie geht es Ihnen heute?"; $message->saveAsNew(); }
public function add() { $this->_throwIfNotSet("reference"); $this->_throwIfNotSet("description"); $this->_throwIfNotSet("name"); $this->_throwIfNotSet("type"); $this->_throwIfNotSet("sendType"); $type = strtoupper($this->type); $sendType = strtoupper($this->sendType); $campaign = new Campaign(); $campaign->reference = $this->reference; $campaign->description = $this->description; $campaign->name = $this->name; $campaign->type = CampaignType::$type(); $campaign->sendType = SendType::$sendType(); $campaign->contactId = $this->contactId ?: 0; $campaign->active = $this->active ?: 1; $campaign->saveChanges(); echo "Added campaign id {$campaign->id()} ({$campaign->name})"; }
public function ajaxReorder() { if (!$this->request()->postVariables()) { $response = ['result' => false]; $response = new Response($response); $response->addHeader('Content-Type', 'application/json'); return $response; } foreach ($this->request()->postVariables('order') as $order => $cid) { $campaign = new Campaign($cid); $campaign->sortOrder = $order; $campaign->saveChanges(); } $response = ['result' => true]; $response = new Response($response); $response->addHeader('Content-Type', 'application/json'); return $response; }
public function renderTranslate() { $campaign = new Campaign($this->getInt('id')); $message = $campaign->message(); $message->reload(); $subject = $this->translateString($message->subject); $plainText = $this->translateString($message->plainText); $language = $this->getStr('hl'); $htmlContent = $message->htmlContent; while ($this->translateBlock($htmlContent)) { } $message->setLanguage($language); $message->reload(); $message->subject = $subject; $message->plainText = $plainText; $message->htmlContent = $htmlContent; $message->saveChanges(); if ($campaign->availableLanguages == null) { $campaign->availableLanguages = [$language => $language]; } else { $availableLanguages = (array) $campaign->availableLanguages; $availableLanguages[$language] = $language; $campaign->availableLanguages = $availableLanguages; } $campaign->saveChanges(); return Redirect::to('/campaigns/' . $this->getStr('id') . '/message/' . $this->getStr('hl')); }