Beispiel #1
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'thanks') {
         return $this->thanksAction($request, $response, $invokeArgs);
     }
     parent::directAction($request, $response, $invokeArgs);
 }
Beispiel #2
0
 function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'ipn') {
         echo 'OK';
     }
     return parent::directAction($request, $response, $invokeArgs);
 }
Beispiel #3
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'ipn' && ($request->getParam('monelib_meaning') == 'USEMULTISHOT' || $request->getParam('monelib_meaning') == 'USEEZSHOT')) {
         return;
     }
     parent::directAction($request, $response, $invokeArgs);
 }
Beispiel #4
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     list($action, $status, $id) = explode("-", $request->getActionName());
     if ($action != 'status') {
         if ($action != 'ipn' && $action != 'thanks' || $request->get('transaction_status') == 'SETTLED') {
             parent::directAction($request, $response, $invokeArgs);
         }
         return;
     }
     if (!in_array($status, array('return', 'ok', 'fail'))) {
         throw new Am_Exception_InternalError("Bad status-request {$status}");
     }
     if (!$id) {
         throw new Am_Exception_InternalError("Invoice ID is absent");
     }
     if (!($this->invoice = $this->getDi()->invoiceTable->findFirstByPublicId($id))) {
         throw new Am_Exception_InternalError("Invoice not found by id [{$id}]");
     }
     switch ($status) {
         case 'return':
             $url = $request->get('transactionStatus') == 'REJECTED' ? $this->getCancelUrl() : $this->getReturnUrl();
             break;
         case 'ok':
             $url = $this->getReturnUrl();
             break;
         case 'fail':
             $url = $this->getCancelUrl();
             break;
     }
     $response->setRedirect($url);
 }
Beispiel #5
0
 public function createTransaction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'api') {
         return new Am_Paysystem_Transaction_1shoppingcart_api($this, $request, $response, $invokeArgs);
     } else {
         return new Am_Paysystem_Transaction_1shoppingcart($this, $request, $response, $invokeArgs);
     }
 }
Beispiel #6
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     $user = $this->getDi()->user;
     $id = $this->getDi()->app->reveal($request->getActionName());
     //actualy it is notification_id
     $notification = $this->getDi()->notificationTable->load($id);
     $this->getDi()->notificationClickTable->log($user, $notification);
     Am_Controller::redirectLocation($notification->url);
 }
Beispiel #7
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ('reject' == $request->getActionName()) {
         $invoice = $this->getDi()->invoiceTable->findFirstByPublicId($request->get("orderDescription"));
         $url = $this->getRootUrl() . "/cancel?id=" . $invoice->getSecureId('CANCEL');
         return Am_Controller::redirectLocation($url);
     } else {
         return parent::directAction($request, $response, $invokeArgs);
     }
 }
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == self::ACTION_IPN) {
         return parent::directAction($request, $response, $invokeArgs);
     } else {
         $request->setActionName($request->getActionName());
         $p = new Am_Controller_CreditCard($request, $response, $invokeArgs);
         $p->setPlugin($this);
         $p->run();
     }
 }
Beispiel #9
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'refund') {
         echo "OK";
         ob_flush();
         return $this->refundAction($request, $response, $invokeArgs);
     } else {
         echo "<softshop></softshop>";
         ob_flush();
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #10
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'thanks') {
         if ($this->getConfig('debugLog')) {
             Am_Di::getInstance()->errorLogTable->log('NetBilling Form [response-thanks]:' . json_encode($request->getParams()));
         }
         $this->invoice = $this->getDi()->invoiceTable->findFirstByPublicId($request->getFiltered('Ecom_ConsumerOrderID'));
         $url = $request->get('Ecom_Ezic_Response_StatusCode') == 0 || $request->get('Ecom_Ezic_Response_StatusCode') == 'F' ? $this->getCancelUrl() : $this->getReturnUrl();
         $response->setRedirect($url);
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #11
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'ipn') {
         try {
             parent::directAction($request, $response, $invokeArgs);
         } catch (Exception $ex) {
             $this->getDi()->errorLogTable->logException($ex);
         }
         echo '45000';
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #12
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     $actionName = $request->getActionName();
     if ($actionName == 'fail') {
         $invoice = $this->getDi()->invoiceTable->findFirstByPublicId($request->getParam('m_orderid'));
         if (!$invoice) {
             throw new Am_Exception_InputError();
         }
         return Am_Controller::redirectLocation($this->getRootUrl() . "/cancel?id=" . $invoice->getSecureId('CANCEL'));
     } else {
         return parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #13
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     switch ($request->getActionName()) {
         case self::ACTION_IPN:
             return parent::directAction($request, $response, $invokeArgs);
         case self::ACTION_UPDATE:
             return $this->updateAction($request, $response, $invokeArgs);
         case self::ACTION_CANCEL:
             return $this->doCancelAction($request, $response, $invokeArgs);
         case self::ACTION_ECHECK:
         default:
             return $this->echeckAction($request, $response, $invokeArgs);
     }
 }
Beispiel #14
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'cancelpaysafecart') {
         // SEE par.3
         @(list($id, $code) = explode('-', filterId($request->getFiltered('id')), 2));
         $invoice = Am_Di::getInstance()->InvoiceTable->findFirstByPublicId(filterId($id));
         if (!$invoice) {
             throw new Am_Exception_InputError("No invoice found [{$id}]");
         }
         $invoice->setCancelled(true);
         $a = new Am_Paysystem_Action_HtmlTemplate_Paysafecard($this->getDir(), 'payment-paysafecard-cancel.phtml');
         $a->process(new Am_Controller($request, $response, $invokeArgs));
         // see par.3
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #15
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     switch ($request->getActionName()) {
         case self::ACTION_IPN:
             return parent::directAction($request, $response, $invokeArgs);
         case self::ACTION_UPDATE:
             return $this->updateAction($request, $response, $invokeArgs);
         case self::ACTION_CANCEL:
             return $this->doCancelAction($request, $response, $invokeArgs);
         case self::ACTION_CANCEL_PAYMENT:
             return $this->cancelPaymentAction($request, $response, $invokeArgs);
         case self::ACTION_THANKS:
             return $this->thanksAction($request, $response, $invokeArgs);
         case self::ACTION_CC:
         default:
             return $this->ccAction($request, $response, $invokeArgs);
     }
 }
Beispiel #16
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'ipn') {
         $accessCode = $request->getFiltered('AccessCode');
         $result = new Am_Paysystem_Result();
         $transaction = new Am_Paysystem_Transaction_EwayRapid3($this, $accessCode);
         $transaction->run($result);
         if (!($invoice = $transaction->getInvoice())) {
             throw new Am_Exception_InputError();
         }
         $this->_setInvoice($invoice);
         if ($result->isSuccess()) {
             Am_Controller::redirectLocation($this->getReturnUrl($invoice));
         } else {
             Am_Controller::redirectLocation($this->getCancelUrl($invoice));
         }
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #17
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'confirm') {
         $invoice = $this->getDi()->invoiceTable->findFirstBy(array('public_id' => $request->get('invoice')));
         if (!$invoice) {
             throw new Am_Exception_InputError('An error occurred while payment request');
         }
         if ($user = $this->getDi()->auth->getUser()) {
             if ($user->user_id != $invoice->user_id) {
                 throw new Am_Exception_InputError('An error occurred while payment request');
             }
         }
         $product = $this->getDi()->productTable->load($invoice->getItem(0)->item_id);
         $billers = json_decode($product->data()->getBlob('sliiing_billers'), true);
         if (!@$billers['options'][$request->get('biller')]) {
             throw new Am_Exception_InputError('An error occurred while payment request');
         }
         //redirect
         $aff = '0';
         $lin = '0';
         $refe_url = '0';
         $ip = '0';
         $keyword = '0';
         if (isset($_COOKIE['MID'])) {
             $mid = base64_decode($_COOKIE['MID']);
             list($aff, $lin, $refe_url, $ip, $keyword) = explode('|', $mid);
         }
         $datas = base64_encode("{$aff}|{$lin}|{$refe_url}|{$ip}|{$keyword}");
         $url = $billers['options'][$request->get('biller')];
         $url = str_replace('$datas', $datas, $url) . '&x_invoice_id=' . $invoice->public_id . '&username='******'&email=' . urlencode($invoice->getUser()->email);
         header('Location: ' . $url);
         exit;
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #18
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'iframe') {
         $p = $this->createController($request, $response, $invokeArgs);
         $p->setPlugin($this);
         $p->run();
         return;
     }
     parent::directAction($request, $response, $invokeArgs);
 }
Beispiel #19
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     switch ($action = $request->getActionName()) {
         case 'connect-btn':
         case 'login-btn':
             $response->setHeader('Content-Type', 'image/png', true);
             $response->setHeader('Expires', gmdate('D, d M Y H:i:s', time() + 3600 * 24) . ' GMT', true);
             readfile(dirname(__FILE__) . '/facebook-connect.png');
             break;
         default:
             throw new Am_Exception_InputError("Wrong request: [{$action}]");
     }
 }
Beispiel #20
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getRawBody()) {
         $webhook = $request->getRawBody();
         $webhook_array = json_decode($webhook, true);
         $request = new Am_Request($webhook_array, $request->getActionName());
     }
     parent::directAction($request, $response, $invokeArgs);
 }
Beispiel #21
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == self::PAYPAL_EXPRESS_CHECKOUT) {
         return $this->expressCheckoutAction($request, $response, $invokeArgs);
     } else {
         return parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #22
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     $actionName = $request->getActionName();
     if ($actionName == 'debug') {
         $this->debugAction($request, $response, $invokeArgs);
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     switch ($request->getActionName()) {
         case self::RETURN_URL_SUCCESS:
         case self::RETURN_URL_FAIL:
             $log = $this->logRequest($request);
             $transaction = $this->createThanksTransaction($request, $response, $invokeArgs);
             $transaction->setInvoiceLog($log);
             try {
                 $transaction->process();
             } catch (Am_Exception_Paysystem_TransactionAlreadyHandled $e) {
                 // ignore this error, as it happens in "thanks" transaction
                 // we may have received IPN about the payment earlier
             } catch (Exception $e) {
                 throw $e;
                 $this->getDi()->errorLogTable->logException($e);
                 throw Am_Exception_InternalError(___("Error happened during transaction handling. Please contact website administrator"));
             }
             $log->setInvoice($transaction->getInvoice())->update();
             $this->invoice = $transaction->getInvoice();
             $this->invoice->data()->set(self::DPS_BILLING_ID, $transaction->getDpsBillingId())->update();
             $response->setRedirect($this->getReturnUrl());
             break;
         default:
             parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #24
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     $actionName = $request->getActionName();
     if ($actionName == 'ipn') {
         if (!in_array($request->getClientIp(), $this->ips)) {
             throw new Am_Exception_InputError("Request not handled - ip is not allowed");
         }
         if ($request->get('art') == 'request') {
             $shopid = $request->get('shopid');
             if (!$shopid) {
                 throw new Am_Exception_InputError("Parameter shopid wasn't received");
             }
             $invoice = Am_Di::getInstance()->invoiceTable->findFirstByPublicId($shopid);
             if (!$invoice) {
                 throw new Am_Exception_InputError("No invoice found");
             }
             $params = array();
             $params['nachname'] = $invoice->getLastName();
             $params['vorname'] = $invoice->getFirstName();
             $params['strasse'] = $invoice->getStreet();
             $params['plz'] = $invoice->getZip();
             $params['ort'] = $invoice->getCity();
             $params['land'] = $invoice->getUser()->country;
             $params['email'] = $invoice->getEmail();
             $params['betrag'] = $invoice->first_total * 100;
             $params['compain_id'] = '';
             $params['ipadresse'] = $invoice->getUser()->remote_addr;
             if ($invoice->second_period) {
                 $aboanlage = 1;
                 $abopreis = $invoice->second_total * 100;
                 preg_match("/[\\d]+/", $invoice->second_period, $days);
                 if ($days[0] <= 365 && $days[0] >= 30) {
                     $abozeit = $days[0];
                 }
                 preg_match("/[\\d]+/", $invoice->first_period, $days);
                 if ($days[0] <= 365 && $days[0] >= 3) {
                     $abonext = $days[0];
                 }
                 $params['aboanlage'] = $aboanlage;
                 $params['abopreis'] = $abopreis;
                 $params['abozeit'] = $abozeit;
                 $params['abonext'] = $abonext;
             }
             $params['cur'] = strtolower($invoice->currency);
             $message = '';
             foreach ($params as $p) {
                 $message .= $p . ";";
             }
             echo utf8_decode($message);
             return;
         }
         //Getting invoice for providing a redirect-URL with the result confirmation
         $shopid = $request->get('shopid');
         $this->invoice = Am_Di::getInstance()->invoiceTable->findFirstByPublicId($shopid);
         $invoiceLog = $this->_logDirectAction($request, $response, $invokeArgs);
         $transaction = $this->createTransaction($request, $response, $invokeArgs);
         if (!$this->invoice) {
             throw new Am_Exception_InputError("Request not handled - Request's parameter shopid is incorrect");
         }
         if (!$transaction) {
             throw new Am_Exception_InputError("Request not handled - createTransaction() returned null");
         }
         $transaction->setInvoiceLog($invoiceLog);
         try {
             $transaction->process();
         } catch (Exception $e) {
             echo "OK;" . $this->getCancelUrl() . "?shopid=" . $this->invoice->public_id;
             if ($invoiceLog) {
                 $invoiceLog->add($e);
             }
             throw $e;
         }
         echo "OK;" . $this->getReturnUrl() . "?shopid=" . $this->invoice->public_id;
         if ($invoiceLog) {
             $invoiceLog->setProcessed();
         }
     } else {
         return parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #25
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     //if ($request->getActionName() == 'cron') return $this->onHourly();
     if ($request->getActionName() == 'thanks') {
         return $this->thanksAction($request, $response, $invokeArgs);
     }
     $invoice = $this->getDi()->invoiceTable->findBySecureId($request->getFiltered('id'), $this->getId());
     if (!$invoice) {
         throw new Am_Exception_InputError(___("Sorry, seems you have used wrong link"));
     }
     $u = $invoice->getUser();
     $xml = new DOMDocument('1.0', 'utf-8');
     $e = new DOMElement('PesapalDirectOrderInfo');
     $el = $xml->appendChild($e);
     $el->setAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchemainstance');
     $el->setAttribute('xmlns:xsd', 'http://www.w3.org/2001/XMLSchema');
     $el->setAttribute('Amount', number_format($invoice->first_total, 2));
     $el->setAttribute('Description', $invoice->getLineDescription());
     $el->setAttribute('Code', '');
     $el->setAttribute('Type', 'MERCHANT');
     $el->setAttribute('PaymentMethod', '');
     $el->setAttribute('Reference', $invoice->public_id);
     $el->setAttribute('FirstName', $u->name_f);
     $el->setAttribute('LastName', $u->name_l);
     $el->setAttribute('Email', $u->email);
     $el->setAttribute('PhoneNumber', $u->phone);
     $el->setAttribute('UserName', $u->email);
     $el->setAttribute('Currency', $invoice->currency);
     $el->setAttribute('xmlns', 'http://www.pesapal.com');
     //post transaction to pesapal
     $consumer = $this->getConsumer();
     $token = $params = NULL;
     $method = $this->getMethod();
     $iframe_src = OAuthRequest::from_consumer_and_token($consumer, $token, "GET", self::URL, $params);
     $iframe_src->set_parameter("oauth_callback", $this->getPluginUrl('thanks'));
     $iframe_src->set_parameter("pesapal_request_data", $s = htmlentities($xml->saveXML()));
     $iframe_src->sign_request($method, $consumer, $token);
     $view = new Am_View();
     $view->addScriptPath(dirname(__FILE__));
     $view->invoice = $invoice;
     $view->iframe_src = $iframe_src;
     $response->setBody($view->render("payment-pesapal-confirm.phtml"));
 }
Beispiel #26
0
 function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     $actionName = $request->getActionName();
     if ($actionName == 'cancel') {
         $invoice = $this->getDi()->invoiceTable->findFirstBy(array('public_id' => $request->getFiltered('merchant_unique_id')));
         if (!$invoice) {
             throw new Am_Exception_InputError("No invoice found [{$id}]");
         }
         Am_Controller::redirectLocation($this->getRootUrl() . "/cancel?id=" . $invoice->getSecureId('CANCEL'));
     } else {
         parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #27
0
 /**
  * By default this method handles request as IPN
  * If actionName=='thanks', it is handled by thanksAction() handler (override createThanksTransaction for that)
  * @param Am_Request $request
  * @param Zend_Controller_Response_Http $response
  * @param array $invokeArgs
  */
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     $actionName = $request->getActionName();
     switch ($actionName) {
         case 'thanks':
             $this->thanksAction($request, $response, $invokeArgs);
             break;
         case 'cancel':
             $invoice = $this->getDi()->invoiceTable->findBySecureId($request->getFiltered('id'), 'STOP' . $this->getId());
             if (!$invoice) {
                 throw new Am_Exception_InputError("No invoice found [{$id}]");
             }
             $result = new Am_Paysystem_Result();
             $result->setSuccess();
             $this->cancelAction($invoice, $request->getActionName(), $result);
             if ($result->isSuccess()) {
                 $invoice->setCancelled(true);
                 Am_Controller::redirectLocation(REL_ROOT_URL . '/member/payment-history');
             } elseif ($result->isAction()) {
                 $action = $result->getAction();
                 $action->process();
                 // I cannot imaginge anything but redirect here... yet? :)
             } else {
                 throw new Am_Exception_InputError(___("Unable to cancel subscription: " . $result->getLastError()));
             }
             break;
         default:
             // standard action handling via transactions
             $invoiceLog = $this->_logDirectAction($request, $response, $invokeArgs);
             $transaction = $this->createTransaction($request, $response, $invokeArgs);
             if (!$transaction) {
                 throw new Am_Exception_InputError("Request not handled - createTransaction() returned null");
             }
             $transaction->setInvoiceLog($invoiceLog);
             try {
                 $transaction->process();
             } catch (Exception $e) {
                 if ($invoiceLog) {
                     $invoiceLog->add($e);
                 }
                 throw $e;
             }
             if ($invoiceLog) {
                 $invoiceLog->setProcessed();
             }
     }
 }
Beispiel #28
0
 public function createTransaction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'callback') {
         return new Am_Paysystem_Transaction_DalpayCheckout_Callback($this, $request, $response, $invokeArgs);
     } else {
         return new Am_Paysystem_Transaction_DalpayCheckout_Ipn($this, $request, $response, $invokeArgs);
     }
 }
Beispiel #29
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     if ($request->getActionName() == 'admin-cancel') {
         return $this->adminCancelAction($request, $response, $invokeArgs);
     } elseif ($request->getActionName() == 'cancel') {
         $invoice = $this->getDi()->invoiceTable->findBySecureId($request->getFiltered('id'), 'STOP' . $this->getId());
         if (!$invoice) {
             throw new Am_Exception_InputError("No invoice found [{$id}]");
         }
         $result = new Am_Paysystem_Result();
         $payment = current($invoice->getPaymentRecords());
         $this->cancelInvoice($payment, $result);
         $invoice->setCancelled(true);
         $this->_redirect('member/payment-history');
     } else {
         return parent::directAction($request, $response, $invokeArgs);
     }
 }
Beispiel #30
0
 public function directAction(Am_Request $request, Zend_Controller_Response_Http $response, array $invokeArgs)
 {
     $user = $this->getDi()->user;
     switch ($request->getActionName()) {
         case 'c':
             $id = $this->getDi()->app->reveal($request->getFiltered('id'));
             //actualy it is notification_id
             $notification = $this->getDi()->notificationTable->load($id);
             $this->getDi()->notificationClickTable->log($user, $notification);
             Am_Controller::redirectLocation($notification->url);
             break;
         case 'get':
             if (!$user) {
                 Am_Controller::ajaxResponse(array());
             } else {
                 $items = $this->getDi()->notificationTable->getNotificationsForUser($this->getDi()->auth->getUser());
                 $dismiss = $user->data()->getBlob('notification.dismiss');
                 if (!$dismiss) {
                     $dismiss = array();
                 } else {
                     $dismiss = unserialize($dismiss);
                 }
                 $out = array();
                 foreach ($items as $item) {
                     $display = $user->data()->get('notification.display.' . $item->pk());
                     if ($item->limit && $display >= $item->limit) {
                         continue;
                     }
                     if (in_array($item->notification_id, $dismiss)) {
                         continue;
                     }
                     $user->data()->set('notification.display.' . $item->pk(), ++$display);
                     $n = new stdClass();
                     $n->id = $this->getDi()->app->obfuscate($item->notification_id);
                     $n->content = $item->content;
                     $n->is_custom = $item->is_custom ? true : false;
                     $n->is_blank = $item->is_blank ? true : false;
                     $n->link = $item->url;
                     $out[] = $n;
                 }
                 $user->save();
                 Am_Controller::ajaxResponse($out);
             }
             break;
         case 'js':
             $response->setHeader('Content-Type', 'application/x-javascript; charset=utf-8');
             echo $this->getJs();
             break;
         case 'd':
             $id = $this->getDi()->app->reveal($request->getFiltered('id'));
             if ($user && $id) {
                 $dismiss = $user->data()->getBlob('notification.dismiss');
                 if (!$dismiss) {
                     $dismiss = array();
                 } else {
                     $dismiss = unserialize($dismiss);
                 }
                 $dismiss[] = $id;
                 $user->data()->setBlob('notification.dismiss', serialize($dismiss));
                 $user->data()->update();
             }
             break;
         default:
             throw new Am_Exception_InternalError('Unknown Action');
     }
 }