/** * Cache lead on MongoDb */ public function cacheLead($lead_id) { $select = $this->select(); if ($lead_id) { $select->where("lead_id = ?", $lead_id); $lead = $this->fetchRow($select); if ($lead) { $lead = $lead->toArray(); $lead["owner"] = $this->ownerModel->find($lead["lead_id"])->toArray(); $lead["chat_request"] = $this->chatRequestModel->getChatRequestForCaching($lead["chat_request_id"]); try { $mongoDb = Db_Mongo::instantiate(); $leadsCollection = $mongoDb->getCollection("leads_cached"); $leadResult = $leadsCollection->findOne(array("lead_id" => $lead["lead_id"])); if ($leadResult) { $criteria = array("_id" => new MongoId($leadResult["_id"])); $leadsCollection->update($criteria, $lead, array("upsert" => true)); } else { $leadsCollection->insert($lead); } return true; } catch (Exception $e) { return false; } } else { return false; } } else { return false; } }
public function processApproveAction() { if ($this->getRequest()->isXmlHttpRequest()) { $lead_id = $this->getRequest()->getPost("lead_id"); if ($lead_id) { $lead = $this->leadModel->find($lead_id)->toArray(); if ($lead) { $owner_id = $lead["owner_id"]; if ($this->ownerModel->hasSufficientCredit($owner_id) && $this->ownerModel->isBulkSubscriber($owner_id)) { $this->leadModel->approve($lead_id); } else { $this->view->result = array("success" => false, "error" => "Has no sufficient credit"); } } } else { $this->view->result = $this->_invalidRequest(); } } else { $this->view->result = $this->_invalidRequest(); } $this->_helper->layout->setLayout("plain"); $this->_helper->viewRenderer("json"); }